#include <stdio.h>
void main() {
float num = 546.327;
printf("the number is %f\n",num);
enter code here
}
输出是546.327026。当我尝试不同的数字时,最后3个都是随机的,总是会在点后打印6个数字。
浮点数以1/2 ^ N的分数之和存储
第一个小数位是0.5,第二个小数位是0.25,第三小数位是0.125等
因此,它们的表示形式不准确...如果无法表示546.327,将1/2 ^ N的分数相加,则近似为近似值...这就是为什么您获得“随机数字”的原因,它们根本不是随机的,这是只是四舍五入的误差。
如果尝试打印另一个可以精确表示为1/2 ^ N的数字,您将获得准确的数字。即546.5、546.75等
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句