c++ - 为什么 cout << set precision(2) << 0.999 的输出是 1 而不是 1.0?

标签 c++ significant-digits

有效数字为2。

为什么输出

cout << setprecision(2) << 0.999 << endl;` 

1而不是1.0吗?

最佳答案

默认格式不打印尾随零;您需要将浮点格式设置为固定,另请参阅 this reference 。所以你需要的是

cout << setprecision(2) << fixed << 0.999 << endl;

另请注意,set precision 指的是十进制数字,因此对于 1.0,您需要 set precision(1)

关于c++ - 为什么 cout << set precision(2) << 0.999 的输出是 1 而不是 1.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37963644/

相关文章:

C++ 高阶函数

c++ - 在模板类中实例化自由模板函数

python - 如何对数字进行四舍五入以纠正不确定性?

r - 求r中有效位数与小数点后的位数

c++ - 将数组作为结构体访问与未定义的行为

c++ - Z 排序几何

c++ - 使用 QStackedWidget 的分层 QTreeView 映射

C++ 有效数字

ruby - 如何在 Ruby 中将 float 舍入到指定数量的有效数字?