【发布时间】:2020-02-28 09:11:06
【问题描述】:
所以我一直在尝试制作自己的 printf,但现在我卡在了 %f 上。
我遇到的问题是,当我给它一个浮点数时,我不知道 printf 在后台做什么:f = 1.4769996 它打印 1.477000。
但是当我给它f = 1.4759995 时,它会打印出值 1.475999
float f = 1.4769996;
printf("%f\n", f); // 1.477000
f = 1.4759995;
printf("%f\n", f); // 1.475999
我想到的是 printf 最后看到了 5 并且它添加了一个但在第二个示例中不起作用。
这个浮点数背后的逻辑是什么?
【问题讨论】:
-
所以我的理解是我应该考虑使用舍入函数来解决这个问题?
-
printf没有“看到”a 5。它只看到 1 和 0。如果要对打印输出进行四舍五入,请阅读 printf 的文档。
标签: c floating-point printf