Итак, я создаю приложение для калькулятора чаевых, но я изо всех сил пытаюсь округлить его до ближайшего цента; вот несколько случайных крайних случаев, которые я придумал
$1.243 => $1.25
$4.44134242 => $4.45
$5.5675235235 => $5.57
$1.21 => $1.21
$1.2000 => $1.20
$1.20001 => $1.21
По сути, я смотрю на сотый разряд, и если после этого десятичного знака есть какое-либо число больше 0, я округляю его до ближайшего цента. Ниже то, что я придумал, но иногда я ошибаюсь на цент
double value = 123.451;
double amount = (int)(value * 100.0) / 100.0;
// Should return 123.46
java.math.BigDecimal
для денежных расчетов. Подробнее здесь stackoverflow.com/a/9959347/2224047. - person Nikolai Shevchenko   schedule 08.02.2021