C++ 四舍五入双小数点

C++ 四舍五入双小数点,c++,rounding,C++,Rounding,这使我的差异为0.6,但我需要它为0.60(两个小数点) 有人能帮我一下吗?双精度的值是0.6,因为0.6和0.60(数学上)是一样的。您需要的是在打印值时设置精度,而不是在计算值时设置精度 这可以通过使用 double x = 9.29; double y = 8.69; double diff = floor((x - y)*100+0.5)/100.0; 如果你使用C++,你应该做类似的事情: printf("%.2f\n", diff); precision功能确定插入操作上写入的

这使我的差异为0.6,但我需要它为0.60(两个小数点)
有人能帮我一下吗?

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

这可以通过使用

double x = 9.29;
double y = 8.69;

double diff = floor((x - y)*100+0.5)/100.0;

<>如果你使用C++,你应该做类似的事情:

printf("%.2f\n", diff);
precision
功能确定插入操作上写入的最大数字数,以表示浮点值。因此,如果您执行此代码,您将得到

printf("%.2e\n", diff);
0.60
如果你把预言设定为3,你会得到

printf("%.2e\n", diff);
0.60

我试过这些解决办法,但效果不太理想。我有过类似的经历

0.600

你以后能打印这个吗?那时0.6和0.60会产生不同。在这种情况下,打印方式会对哪个答案更好产生影响。我想将其存储在diff变量中。diff是一个双精度变量,0.60和0.6仅在打印或格式化为字符串时不同。因为diff是一个双精度变量,所以-->
printf(“%.2f\n”,diff)导致警告。您应该编写
%.2e
/
%.2e
%.2lf
 cout << "balance owing: " << balOwed[i] << endl;
  cout.presicion(2);
  cout << "balance owing: " << balOwed[i] << endl;
  cout.setf(ios::fixed);
  cout.precision(2);
  cout << "balance owing: " << balOwed[i] << endl;