舍入到第二个小数点

mik*_*ike 5 c++ rounding

我如何在C++中舍入到第二个小数点.谢谢你的帮助.

Him*_*ury 3

您可以乘以 100,然后舍入为整数。然后将小数点放在前 2 位数字之后。

例如:

void round(double x)
{
   double y = 100 * x;
   int rounded = (int)(y + 0.5);
   printf("%lf rounded = %d.%02d\n", x, rounded / 100, rounded % 100);
}
Run Code Online (Sandbox Code Playgroud)

  • 不,这一点不会。舍入的边缘情况是 0.5,它可以完美地表示为二进制分数。即“xxxx.01111111111111111”之前的数字向下舍入为“xxxx”,从“xxxx.10000000000000000”向上的数字向上舍入为“xxxx+1”。(如果您_已经_遭受 IEEE754 精度问题的困扰,那么这可能会令人惊讶。例如,如果您认为 `y` 包含 `0.145` - 它不能。) (2认同)