29 lines
910 B
Plaintext
29 lines
910 B
Plaintext
double epsilon = 1e-18D;
|
|
|
|
void setup() {
|
|
testIsClose(100000000000000.01D, 100000000000000.011D, epsilon);
|
|
testIsClose(100.01D, 100.011D, epsilon);
|
|
testIsClose(10000000000000.001D / 10000.0D, 1000000000.0000001000D, epsilon);
|
|
testIsClose(0.001D, 0.0010000001D, epsilon);
|
|
testIsClose(0.000000000000000000000101D, 0.0D, epsilon);
|
|
testIsClose(Math.sqrt(2) * Math.sqrt(2), 2.0D, epsilon);
|
|
testIsClose(-Math.sqrt(2) * Math.sqrt(2), -2.0D, epsilon);
|
|
testIsClose(3.14159265358979323846D, 3.14159265358979324D, epsilon);
|
|
exit(); // all done
|
|
}
|
|
|
|
|
|
boolean isClose(double num1, double num2, double epsilon) {
|
|
return Math.abs(num2 - num1) <= epsilon;
|
|
}
|
|
|
|
|
|
void testIsClose(double num1, double num2, double epsilon) {
|
|
boolean result = isClose(num1, num2, epsilon);
|
|
if (result) {
|
|
println("True. ", num1, "is close to", num2);
|
|
} else {
|
|
println("False. ", num1, "is not close to", num2);
|
|
}
|
|
}
|