拿这个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(....))'或'same'.
在Julia
,x == y
将返回false
.有没有办法在Julia中检查这种相等的机器精度?
isapprox(x,y)
是你在找什么.
?isapprox
在REPL中使用以获得更多帮助.具体而言,有2个参数指定了误差的相对容差和误差的绝对容差.
2016年快乐