为什么输出cout<< setprecision(2)<< 0.999是1而不是1.0?

时间:2016-06-22 09:17:35

标签: c++ significant-digits

有效数字为2.

为什么输出

qobject_cast

cout << setprecision(2) << 0.999 << endl;` 而不是1

1 个答案:

答案 0 :(得分:5)

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

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

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