为什么总有一个错误 在哪? 谢谢了
#include<stdio.h>
main()
{
int a=7,b;
float b;
b=a/3.0;
printf("%f\n",b);
}
请教C语言浮点数输出问题。
由于浮点表示的数多是规格化的,尾数左移会引起最高有位的丢失,造成很大误差;而尾数右移虽引起最低有效位的丢失,但造成的误差较小,因此,对阶操作规定使尾数右移,尾数右移后使阶码作相应增加,其数值保持不变。很显然,一个增加后的阶码与另一个相等,所增加的阶码一定是小阶。因此在对阶时,总是使小阶向大阶看齐...
C语言浮点型数据问题
a为浮点数,就应该按%f来输出.就是说printf("%f,%f", a, b);或者printf( "%f", a );你看到的printf("%d",a)还输出12345678848.00000是看错了.而你看到printf("%d,%f",a,b)结果不正确是因为,float的精度丢失引起的.
C语言浮点型数据能不能取余?
C语言浮点型数据不能取余。一个浮点型的数据,转化成整形数据后可以通过除法与取余来获得其个位、十位、百位。先把它强制转换成int型,然后取余 %是可行的。例如浮点型数据521.63,转化成整形后是521,对10取余可以获取个位数1,对100取余再除以10取整可以获得十位数2,除以100取整可以获得百位数5。
C语言中的浮点数据类型
结果会显示float为4字节,double为8字节,证实了我们关于精度与内存占用的直觉。在C语言中,浮点数据类型的选择需要根据实际需求的精度和内存*来决定。在实际应用中,我们通常可以接受一定程度的误差,但在高精度计算中,可能需要特殊方法来减少误差。这就是浮点数据类型在C语言中的核心作用。继续深入学习,...
c语言中float型的精度问题
浮点数不是连续值,有一定精度,特点是动态范围大。它还没有int的精度高,因为int是32位表示,float只有23位有效值,其他是符号位和指数。既然计算得不到12.10,就是浮点数不能精确表示12.10。c = 12.099998精度也很高了,只差0.000002,差值很小了 ...
关于C语言中double型输出的问题
但是float,double可以表示的浮点数范围及精度是不同的。例如1653 float a = 1.123456;float b = 1.12345679;例如:ble占8字节 对应的格式为%lf float占4字节 对应的格式为%f 当两个格式用反时,会造成程序读取数据并赋值时1653,赋值给变量时字节信息错位,导致数据错误。float 存储数据格式为:1...
C语言浮点型数的问题
浮点变量对于任何数都是化成小数来表示的,比如9表示为:1.001*10^3 我想楼主应该知道,浮点数的小数部分只能保存一定长度的数,如果现在假设有一个只能保存2位小数的浮点变量的话,那1.001就必须进行四舍五入了,照搬十进制数的四舍五入,如果下一位是1,则进一,是0则不进一,所以这个数就变成了1.01...
如何用c语言输出浮点数呢?
include<stdio.h> int main(){ float a,b,c,D,max;scanf("%f%f%f",&a,&b,&c);if(a>b)D=a;else D=b;if(D>c)max=D;else max=c;printf("%f",max);return 0;}
c语言关于浮点型数据范围的问题
可以这样理解:浮点数由有效数及指数两部分组成,你提到的两个值,应该说一个是一个是最大数,一个是最小精度值。其实如果是从值的范围来说,这个编译环境下面,最小的负数应该是可以表示到-3.402823466 E+38,在-3.402823466 E+38到+3.402823466 E+38之间的数,都是可以表示的。(但不一定是...
c语言如何用浮点数
include<stdio.h> int main(){ float a=3.123000;printf("%g\\n",a);\/\/自动省略后面无意义的0 return 0;}