c ++双舍入问题

时间:2015-10-29 23:39:30

标签: c++

为什么?

11979999 / 10000 = 1197.999877930

使用

printf("%f\n", static_cast<double>(((float)11979999 / (float)10000)));

而不是

1197.9999

如何解决?

1 个答案:

答案 0 :(得分:3)

在您的代码中,您以单精度进行计算,然后将结果转换为double。如果需要双精度,请以双精度计算:

  printf("%f\n", (double)11979999 / (double)10000);