了解 C++ 通用浮点格式

问题描述 投票:0回答:1

如果这之前已经发布过,我很抱歉。我已经开始阅读 Nicolai M. Josuttis 所著的《C++ 标准库 - 教程和参考》一书。

我目前正在阅读第 15 章:使用流类的输入/输出。 在 15.7.6 浮点表示法部分。 (对于我的书版本。您的版本可能略有不同)

这个表 15.27 试图解释一些数字的一般格式是如何工作的。通用格式应该是当开发人员没有选择任何固定或科学记数法时应用的格式。

精度() 421.0 0.0123456789
2 4.2e+02 0.012
6 421 0.0123457.

该表显示了如何根据分配给输出流的精度值来格式化和打印浮点数。 例如,

std::cout << std::precision(2) << 421.0 << std::endl;
会打印
4.2e+02

我不明白为什么对于 precision = 2,在一般格式中,0.0123456789 打印 0.012,它显示了高于精度值的有效位数...

有人可以向我解释一下流输出该值所采取的过程吗? 谢谢。

我期望它打印 0.01 而不是 0.012

c++ formatting precision iostream
1个回答
0
投票

它工作正常只是因为在这种情况下精度意味着有效数字的数量,它是一个数学术语。例如。数字 0.00078 有 2 个有效数字 - 78。不要与小数点后的位数(即小数位数)混淆。

© www.soinside.com 2019 - 2024. All rights reserved.