为什么0.3不是“==”到0.1 * 3?

时间:2013-10-22 19:08:41

标签: matlab equality

当我在matlab中尝试下面的代码时,a和b不相等应该不是吗?

a = 0.3
b = 0.1*3
a == b

这是一个错误还是我使用错误的运算符来比较数字?

1 个答案:

答案 0 :(得分:1)

两者不相等,因为浮点运算具有一定的精度。检查差异(a-b)它应该非常小。

对于大多数编程语言,答案只是“处理它,与容差进行比较”,但matlab有一个符号工具箱。这还包括有理数,并允许消除某些功能的这个问题。不要指望这是一个简单的解决方案。