|
|
|
|
|
by espadrine
1896 days ago
|
|
The same goes in Common Lisp, but for very different reasons: * (= (+ 0.1 0.2) 0.3)
T
In Common Lisp, there is a small epsilon used in floating-point equality: single-float-epsilon. When two numbers are within that delta, they are considered equal.Meanwhile, in Rakudo, 0.1 is a Rat: a rational number where the numerator and denominator are computed. You can actually get the same underlying behavior in Common Lisp: (= (+ 1/10 2/10) 3/10)
Sadly, not many recent languages have defaults as nice as those. Another example is Julia: julia> 1//10 + 2//10 == 3//10
true
IMO, numerical computations should be correct by default, and fast in opt-in. |
|