如何在C++中将输出精度设置为2位小数?

lhcgjxsq  于 2022-12-01  发布在  其他
关注(0)|答案(3)|浏览(234)

我想将输出精度全局设置为2个小数位。
我已经尝试使用iomanipsetprecision,但是我总是得到包含'e'的输出。
这是我的示例代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main ()
{
    double pay=16.78;
    double hours;
    double total;

    cout.precision(2); 

    cout << "Please enter how many hours you worked : " << endl;
    cin >> hours;

    total=hours*pay;

    cout << "You earned: " << total << endl;
}
bkhjykvo

bkhjykvo1#

您可以使用类似于以下内容的内容:

double pay = 393.2993;
std::cout << std::fixed << std::setprecision(2) << pay;

您需要包含iomanip才能使其正常工作。

#include <iomanip>
3z6pesqy

3z6pesqy2#

我不熟悉“cout.precision(2)",如果我希望输出有4位有效数字,我会使用std::setprecision(4)。

w1jd8yoj

w1jd8yoj3#

如果你的e是一个正值,你不能骑他们,因为你的值太大了。这个代码

std::cout << std::setprecision(3) << 3e45;

//output
3e+45

如果它是一个负数,则精度不够。

std::cout << std::setprecision(3) << 3e-45; //

//output
3e-45

一个简单的方法是使用std::fixed

std::cout << std::fixed << std::setprecision(3) << 3.63e-2;

//output
0.036

但是std::fixed的缺点是它在最后一个非零数字之后显示零,直到它达到你之前设置的setprecision数量。

相关问题