Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Double Value Comparison

Tags:

java

double

Do we need to be careful when comparing a double value against zero?

if ( someAmount <= 0){
.....
}

1 Answers

If you want to be really careful you can test whether it is within some epsilon of zero with something like

double epsilon = 0.0000001;
if      ( f <= ( 0 - epsilon ) ) { .. }
else if ( f >= ( 0 + epsilon ) ) { .. }
else { /* f "equals" zero */ }

Or you can simply round your doubles to some specified precision before branching on them.

For some interesting details about comparing error in floating point numbers, here is an article by Bruce Dawson.

like image 99
Crashworks Avatar answered Sep 15 '25 05:09

Crashworks