kabra.dabar - 1 year ago 79

Java Question

What is the guaranteed accuracy of multiplication operator for double values in java?

For example, 2.2 * 100 is 220.00000000000003, but 220 is a double number. 220.00000000000003 is the next double after 220.

Answer Source

The multiplication is working fine, but `2.2`

cannot be represented exactly as a double. The closest doubles are:

- 2.199999999999999733 (0x4001999999999999)
- 2.200000000000000177 (0x400199999999999a)

Some software will print the latter value as `2.2`

, but that doesn't mean it's exact. It just means it's treated as "close enough".