C语言为什么当输出一个固定float型时输出的数字变了,就是float a=666.666,我再用“%f”

输出时,结果就成了666.666016,为什么呢?谢谢大家了!!

因为%f,也就是float型变量的精度就是小数点后六位,你指定按照%f格式输出,当然会变。可以尝试%nf,n为数据宽度。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-24
float型 数字,内存32位2进制, 有效数字位数只有 6-7 位(十进制),所以 输出 位数多的时候,可靠的数字只有前面的 6-7位。
改用 double 型 数字,内存64位2进制, 有效数字位数 就有 14-15 位了。
第2个回答  2013-07-24
其实这是和计算机硬件有关系的,你知道的计算机的存储结构是二进制,也就是说计算机内部所有的数据都是以二进制的形式进行保存,那么这个浮点数也不例外,因此存在一定程度上的近似。随着计算机位数的提高,可以提高数据的表示精度以及范围。
第3个回答  2013-07-25
试试”.3%f "

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网