【发布时间】:2015-08-06 16:32:16
【问题描述】:
我对@987654322@ 的行为感到困惑。它打印出3.141593,但M_PI 是3.14159265358979323846264338327950288。为什么 printf 会这样做,我怎样才能让它打印出整个浮点数。我知道 %1.2f 格式说明符,但如果我使用它们,我会得到一堆未使用的 0,并且输出很难看。我想要浮点数的全部精度,而不是额外的。
【问题讨论】:
-
一旦将一段文本转换为浮点数或双精度数,“所有”数字就不再是一个有意义的概念。例如,计算机无法知道它转换了“3.14”还是“3.14000000000000000275”,并且它们都恰好产生了相同的内部表示。您只需根据您对所涉及数字精度的了解,选择适合您任务的位数即可。