使用浮点数和错误结果的C ++简单数学运算?

时间:2014-01-25 19:30:51

标签: c++ math subtraction

我需要简单的数学运算和一些浮点数,如“3.3 - 2.6”。结果是0.700001。我不知道为什么会有像0.700001这样的数字。

Some examples

你能帮我吗?

4 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

计算机以有限精度处理二进制格式的数字。不能精确地表示各种简单的十进制数,因此它给出了最接近的答案。

解决问题的常用方法是限制实际显示的精度。如果您使用C ++流进行输出,则std::fixedstd::setprecision操纵器应该有所帮助。

答案 2 :(得分:1)

3.3 is represented in memory as 3.29999

2.6 is represented in memory as 2.59998

所以

 3.3 -2.6 = 0.70001

this post可能会让您对此事有更深入的了解

答案 3 :(得分:0)

也许这是因为浮动精度。尝试使用double。