在下面的示例中,输出为3.1,因此它从第一个值开始。
double y = 3.14784;
cout << setprecision(2) << y;
在以下示例中,输出精度从十进制值开始
int x = 2;
double y = 3.0;
cout << setprecision(2) << x/y;
然后在下面的代码行中 - 与上面声明的x和y相同,我们得到的精度始终没有显示。 (以下打印6.00的唯一方法是使用固定的)。
cout << setprecision(2) << x * y; // shows 6.
如果我们没有使用固定 - 只是一个setprecision(n)n开始在哪里?因为它声明它的设定精度用于小数精度。然而在第一个例子中,它查看整个double值而不仅仅是小数。
请指教。 感谢。
答案 0 :(得分:1)
来自http://www.cplusplus.com/reference/ios/ios_base/precision/
对于默认语言环境:
- 使用默认浮点表示法,精度字段指定要计算的有意义数字的最大数量,总计算小数点前和小数点后的数字。请注意,它不是最小值,因此如果数字的显示位数少于精度,则不会使用尾随零填充显示的数字。
- 在固定和科学记数法中,精确字段精确指定小数点后显示的位数,即使这包括尾随小数零。在这种情况下,小数点前的数字与精度无关。
答案 1 :(得分:0)
n从第一个有意义的数字(非零)开始