C++ 输出时精度控制

Posted by Xsp on April 9, 2018

问题 problem A

在输出的时候没有控制精度, 直接 cout 的话 double 默认保留6位有效数字, 结果 Incorrect

可以设置精度如下:

double a = 1.123456789;
// 保留10位有效数字
cout << setprecision(10);
cout << a << endl;
// 也可以这样写
cout << setprecision(10) << a << endl;

// 保留10位小数
printf("%.10f\n", a);
// . 表示精度,不加 . 10则表示宽度
printf("%.10f\n", a);

// 加上fixed 表示输出固定小数位
cout.setf(ios::fixed);
cout << setprecision(10);

// showpoint在位数不够时会补0
cout.setf(ios::showpoint);

参考: