
关于C语言float
float型数据的舍入误差是潭浩强的书.第3版.还有,定义FLOAT算1/4,为什么等于0而不是0.25?INT肯定是等于0的,FLOAT为什么也等于0.书上说a=123...
float型数据的舍入误差
是潭浩强的书.第3版.
还有,定义FLOAT算1/4,为什么等于0而不是0.25?
INT肯定是等于0的,FLOAT为什么也等于0.
书上说
a=123456.789e5;
b=a+20;
printf("f/n",b);
这里的误差我能懂,因为精确位数的问题.
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.
1.0/3.0*3不存在这样的问题吧.
我用的是Turbo C&C++ 3 英文版.
还有,1/4为什么等于0?也是FLOAT型.
如果INT型=0我能理解,FLOAT为什么也等于0,而不是0.25??
回答一下谢谢
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.
azheng757大哥,最后一个疑问了.为什么
printf("%d",1.0/3.0*3);
0
算的结果=0?
这样不也是先转化为精度高的吗?
我是自学的...
意思是
1/3=0.333333333........
再0.33333333.......*3=0.999999999999999999.....
是吗?
突然想起来,以前想过的一个问题.
1/3*3=1
却0.3333333333...*3=0.999999999....
晕死.1和0.999999....怎么看也是1大 = =!!
吐血身亡. 展开
是潭浩强的书.第3版.
还有,定义FLOAT算1/4,为什么等于0而不是0.25?
INT肯定是等于0的,FLOAT为什么也等于0.
书上说
a=123456.789e5;
b=a+20;
printf("f/n",b);
这里的误差我能懂,因为精确位数的问题.
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.
1.0/3.0*3不存在这样的问题吧.
我用的是Turbo C&C++ 3 英文版.
还有,1/4为什么等于0?也是FLOAT型.
如果INT型=0我能理解,FLOAT为什么也等于0,而不是0.25??
回答一下谢谢
书上还说用程序计算1.0/3.0*3的结果并不等于1.但是我TURBO C算出1了.
azheng757大哥,最后一个疑问了.为什么
printf("%d",1.0/3.0*3);
0
算的结果=0?
这样不也是先转化为精度高的吗?
我是自学的...
意思是
1/3=0.333333333........
再0.33333333.......*3=0.999999999999999999.....
是吗?
突然想起来,以前想过的一个问题.
1/3*3=1
却0.3333333333...*3=0.999999999....
晕死.1和0.999999....怎么看也是1大 = =!!
吐血身亡. 展开
2个回答
展开全部
你如果是这样定义
float m=1/4;
则m=0.00
1 4皆为整型,按整型计算得0,再转为实型赋值
若定义
float m=1.0/4;float m=1/4.0;float m=1.0/4.0;
m=0.25
最后一个不用说
前两个类型不匹配,在这种情况下,都先转化为精度高的,即实型,再运算,最后再将运算结果转化为定义变量的类型即实型赋值
printf("%f",1.0/3.0*3);
1.000000
printf("%d",1.0/3.0*3);
0
你可能是这样算的
int a=1.0/3.0*3;
printf("%d",a);
1
没错,是转化为精度高的浮点数,结果也是实型的,
但你知道实型是有误差的,即使精度很高,可能结果是0.999999……
但不是1,对其取整,结果还是0,它只会舍不会入
我想是吧
float m=1/4;
则m=0.00
1 4皆为整型,按整型计算得0,再转为实型赋值
若定义
float m=1.0/4;float m=1/4.0;float m=1.0/4.0;
m=0.25
最后一个不用说
前两个类型不匹配,在这种情况下,都先转化为精度高的,即实型,再运算,最后再将运算结果转化为定义变量的类型即实型赋值
printf("%f",1.0/3.0*3);
1.000000
printf("%d",1.0/3.0*3);
0
你可能是这样算的
int a=1.0/3.0*3;
printf("%d",a);
1
没错,是转化为精度高的浮点数,结果也是实型的,
但你知道实型是有误差的,即使精度很高,可能结果是0.999999……
但不是1,对其取整,结果还是0,它只会舍不会入
我想是吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询