使用 "double" 输出具有两位小数的值

Outputting a value with two decimals using "double"

本文关键字:两位 小数 输出 double 使用      更新时间:2023-10-16

我正在开发一个程序,该程序根据用户输入的值输出在汽油上花费的总金额。我希望它输出一个小数点后 2 位的值,但程序对总数进行四舍五入,而不是输出总数应该是多少。我是初学者,不知道为什么它无法正常工作。

double gasPrice = 3.87;
double gallonsPumped = 0;

cout<<"How many gallons of gasoline (Diesel) were purchased today:"<<endl;
cin>>gallonsPumped;
int finalGasPrice = gasPrice*gallonsPumped;
cout<<endl;
if (gallonsPumped >= 1)
{
    cout<<endl<<"The total cost for gasoline today was $"<<finalGasPrice<<"."<<endl;
}
else
{
    cout<<"No money spent on gasoline today.";
}

int 类型是一个整数 - 即没有小数位,因此乘法向下舍入到最接近的整数。

您想要使用浮点数或双精度数: double finalGasPrice = gasPrice*gallonsPumped;

要使输出格式在小数点后精确显示两位数字,您可能需要使用如下内容: cout << setiosflags(ios::fixed) << setprecision(2) << finalGasPrice;

整数只能容纳整数:没有小数或分数。因此,当您设置 finalgasprice 时,结果将被截断为整数。将最终gas价格初始化为双精度将解决此问题。您还应该将">= 1"更改为">= 0",除非您希望低于一美元的付款不被注意。