答案 0 :(得分:3)
答案 1 :(得分:2)
计算机以有限精度处理二进制格式的数字。不能精确地表示各种简单的十进制数,因此它给出了最接近的答案。
解决问题的常用方法是限制实际显示的精度。如果您使用C ++流进行输出,则std::fixed
和std::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。