25 lines
634 B
Plaintext
25 lines
634 B
Plaintext
// Rosetta Code problem: http://rosettacode.org/wiki/Approximate_equality
|
|
// by Jjuanhdez, 09/2022
|
|
|
|
epsilon = 1.0
|
|
while (1 + epsilon <> 1)
|
|
epsilon = epsilon / 2
|
|
wend
|
|
|
|
print "epsilon = ", epsilon
|
|
print
|
|
eq_approx(100000000000000.01, 100000000000000.011)
|
|
eq_approx(100.01, 100.011)
|
|
eq_approx(10000000000000.001/10000.0, 1000000000.0000001000)
|
|
eq_approx(0.001, 0.0010000001)
|
|
eq_approx(0.000000000000000000000101, 0.0)
|
|
eq_approx(sqrt(2)*sqrt(2), 2.0)
|
|
eq_approx(-sqrt(2)*sqrt(2), -2.0)
|
|
eq_approx(3.14159265358979323846, 3.14159265358979324)
|
|
end
|
|
|
|
sub eq_approx(a, b)
|
|
tmp = abs(a - b) < epsilon
|
|
print tmp, " ", a, " ", b
|
|
end sub
|