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

4

我希望将输出精度全局设置为2位小数。

我已经尝试使用和setprecision,但是输出中仍然包含'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;
}

1
你好,欢迎来到 Stack Overflow。如果您发布一个最小化的示例以展示您想要演示的行为,而不是整个代码,那么您可能会更快地获得更好的答案。 - Amadan
如何编写一个 [mcve]。 - Baum mit Augen
1
可能是如何在C++中使用 setprecision的重复问题。 - Amadan
3个回答

1
您可以使用类似这样的代码:
double pay = 393.2993;
std::cout << std::fixed << std::setprecision(2) << pay;

你需要包含 iomanip 才能使其正常工作。
#include <iomanip> 

0

我不熟悉 "cout.precision(2)"。如果我想要输出结果有4个有效数字,我会使用 std::setprecision(4)。


0
如果您的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的缺点是它会显示最后一个非零数字之后的零,直到达到先前设置的精度值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接