C语言float类型的有效数字不是16位么?为什么金牌大试卷的答案上说是6位?印错了?
http://blog.sina.com.cn/s/blog_6ebd49350101gdgo.html
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字
float 类型小数点后有效位的位数是 6.Double 的 是 15 位。
C语言中关于float、double、long double精度及数值范围理解
caozhy 解释的很清楚了, 总之就是方便编译器处理