Вопросы к Поиску с Алисой
Использование double для точных финансовых вычислений нельзя, потому что это приводит к потере точности. dzone.com habr.com
Это связано с тем, что в типах с плавающей точкой число представлено в виде сумм степеней с основанием 2, а денежные суммы представляются в десятичной системе счисления. habr.com Большинство дробных чисел в десятичной системе счисления не имеют точного представления в виде конечной суммы степеней двойки. habr.com
Например, если нужно сохранить 0,1 доллара (10 центов), типы float или double не смогут сохранить его точно. dzone.com Вместо этого в двоичном формате будет записано только более близкое значение приближения. dzone.com При повторении арифметических операций (умножении или делении) с использованием этих типов данных ошибка может накапливаться. dzone.com
Для точных финансовых вычислений рекомендуется использовать другие типы данных, например BigDecimal. dzone.com javarevisited.blogspot.com