Java double precision sum trouble

If you wanted 2.97, you should have used BigDecimal.

doubles are stored as fractions in binary, not decimal. So 3.75, for example, is just stored as 2^1 + 2^0 + 2^(-1) + 2^(-2).

2.8 and 0.17 cannot be represented exactly as binary fractions, so there’s going to be some rounding error.

You may also find this article helpful.

Leave a Comment