四舍五入双小数点后两位

rounding off double two decimal points

本文关键字:两位 小数点 四舍五入      更新时间:2023-10-16
double x = 9.29;
double y = 8.69;
double diff = floor((x - y)*100+0.5)/100.0;

这给了我 diff 为 0.6,但我需要它为 0.60(小数点后两位)有人可以帮我解决这个问题吗?

双精度值是0.6,因为0.6和0.60(数学上)是一回事。您需要在打印值时设置精度,而不是在计算时设置精度。

这可以通过以下方式完成

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

printf("%.2fn", diff);
如果你

正在使用C++你应该做这样的事情:

cout.precision(2);
cout << fixed << diff << "n";

如果您使用 C,请尝试以下操作:

printf("%.2en", diff);

precision函数确定插入操作中要写入的最大位数以表示浮点值。因此,如果您执行此代码,您将获得

0.60

如果您将前提设置为 3,您将获得

0.600

我尝试了解决方案,但对我来说并不完全有效。我有这样的东西。

 cout << "balance owing: " << balOwed[i] << endl;

注意:balOwed[i] 是类型为"double"的"数组"。它在一个 for 循环下。无论如何这将给出类似"欠款余额:1234.00"的输出。但是,它只给出类似"欠余额:1234"的输出。

我尝试使用:

  cout.presicion(2);
  cout << "balance owing: " << balOwed[i] << endl;

它没有用。所以最终对我有用的是以下代码:

  cout.setf(ios::fixed);
  cout.precision(2);
  cout << "balance owing: " << balOwed[i] << endl; 

为了让你们知道,我也尝试了 setprecision(2),并且必须包含一个新的库。但这也没有用。希望对您有所帮助!