Почему 65.12 - 2 не равно 63.12 в java?

Возможный дубликат:
Арифметика с плавающей точкой не дает точных результатов в Java

Недавно я работал над проектом, когда натолкнулся на странную ошибку.

Когда 2 вычиталось из 65.12, значение было больше (не равно) 63.12.

Здесь упрощенный код:   System.out.println(65.12-2);

И вывод в консоли:   63.120000000000005

Я не уверен, почему это так, и если кто-нибудь знает простую исправление/обходное решение, это будет здорово!

Спасибо.

Ответы