Approximate equality: Difference between revisions
Content added Content deleted
(added OCaml) |
(added ReScript) |
||
Line 1,360: | Line 1,360: | ||
3.142857 ≅ 3.141592653589793: False |
3.142857 ≅ 3.141592653589793: False |
||
3.142857 ≅ 3.141592653589793: True</pre> |
3.142857 ≅ 3.141592653589793: True</pre> |
||
=={{header|ReScript}}== |
|||
<lang rescript>let approx_eq = (v1, v2, epsilon) => { |
|||
abs_float (v1 -. v2) < epsilon |
|||
} |
|||
let test = (a, b) => { |
|||
let epsilon = 1e-18 |
|||
Printf.printf("%g, %g => %b\n", a, b, approx_eq(a, b, epsilon)) |
|||
} |
|||
{ |
|||
test(100000000000000.01, 100000000000000.011) |
|||
test(100.01, 100.011) |
|||
test(10000000000000.001 /. 10000.0, 1000000000.0000001000) |
|||
test(0.001, 0.0010000001) |
|||
test(0.000000000000000000000101, 0.0) |
|||
test(sqrt(2.0) *. sqrt(2.0), 2.0) |
|||
test(-. sqrt(2.0) *. sqrt(2.0), (-2.0)) |
|||
test(3.14159265358979323846, 3.14159265358979324) |
|||
} |
|||
</lang> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |