MENU

代码片段:C++保留小数精度

October 13, 2018 • 学习

在 C++ 的编程中,总会遇到浮点数的处理,有时我们需要保留小数后几位。

在 ANSI C 中,我们可以使用 printf("%.2f",a);
在 C++ 中,我们可以通过使用setprecision()来实现这个需求。
setprecision()位于头文件<iomanip>
使用方式如下

    cout << setprecision(2) << a <<endl;

但是,如果 a 的值为 0.40001,输出的结果为 a=0.4,后面第二位的 0 被省略了。
如果需要实现自动补 0,需要在 cout 之前进行补 0 的定义。代码如下:

    cout.setf(ios::fixed);
    cout << "a=" <<fixed<< setprecision(2) << a <<endl; //输出a=0.40

这样,我们就可以得到 0.40 了。如果想要关闭掉补 0,只需要对 fixed 进行取消设置操作。

    cout.unsetf(ios::fixed);
    cout << "a=" << setprecision(2) << a <<endl; //输出a=0.4

输出结果就又变回 a=0.4 了。

Last Modified: January 27, 2021
Archives QR Code
QR Code for this page
Tipping QR Code