拿这个R
示例:
> x = 0.5 - 0.3
> y = 0.3 - 0.1
> x == y # although mathematically TRUE, it’s FALSE for limited precision
[1] FALSE
> all.equal(x,y) # equal up to precision of computer
[1] TRUE
引用R文档:
'all.equal(x,y)'是一个用于比较R对象'x'和'y'的实用程序 测试'接近平等'。如果它们不同,则进行比较 仍然在某种程度上做了,差异的报告是 回。不要在'if'中直接使用'all.equal' 表达式 - 使用'isTRUE(all.equal(....))'或'相同'if 合适的。
在Julia
,x == y
将返回false
。有没有办法在Julia中检查这种相等的机器精度?
答案 0 :(得分:5)
isapprox(x,y)
正是您要找的。 p>
在REPL中使用?isapprox
以获得更多帮助。具体来说,有2个参数可以指定误差的相对容差和误差的绝对容差。
2016年快乐