круглый BigDecimal до ближайших 5 центов

Я пытаюсь понять, как округлить денежную сумму в сторону увеличения до ближайших 5 центов. Ниже показаны мои ожидаемые результаты

1.03     => 1.05
1.051    => 1.10
1.05     => 1.05
1.900001 => 1.10

Мне нужно, чтобы результат имел точность 2 (как показано выше).

Обновить

Следуя совету ниже, лучшее, что я мог сделать, это я

    BigDecimal amount = new BigDecimal(990.49)

    // To round to the nearest .05, multiply by 20, round to the nearest integer, then divide by 20
   def result =  new BigDecimal(Math.ceil(amount.doubleValue() * 20) / 20)
   result.setScale(2, RoundingMode.HALF_UP)

я не уверен, что это на 100% кошерно - яЭто касается точности, которая может быть потеряна при конвертации в и из двойников. Тем не менее, это 'лучший ямы придумали до сих пор икажется работать.

Ответы на вопрос(10)

Ваш ответ на вопрос