【发布时间】:2021-04-09 09:19:09
【问题描述】:
#include <stdio.h>
int main()
{
printf("%.2g %.2f\n", 2.925, 2.925);
}
我认为正确的输出应该是:
2.93 2.93
现在,输出如下:
2.9 2.92
有两个误解:
-
为什么 '%.2g' 不显示点后面的两位数?
-
为什么要四舍五入?
【问题讨论】:
-
2.925是2.92499999999999982236431605997495353221893310546875精确。所以四舍五入是正确的。 -
第一个呢?
标签: c floating-point printf