朱莉娅:有没有办法像R的all.equal()那样测试平等?

Nic*_*ick 5 julia

拿这个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
Run Code Online (Sandbox Code Playgroud)

引用R文档:

'all.equal(x,y)'是一个用于比较R对象'x'和'y'测试'接近相等'的实用程序.如果它们不同,仍然会在一定程度上进行比较,并返回差异报告.不要在'if'表达式中直接使用'all.equal' - 如果合适,使用'isTRUE(all.equal(....))'或'same'.

Julia,x == y将返回false.有没有办法在Julia中检查这种相等的机器精度?

Dan*_*etz 5

isapprox(x,y) 是你在找什么.

?isapprox在REPL中使用以获得更多帮助.具体而言,有2个参数指定了误差的相对容差和误差的绝对容差.

2016年快乐