redondea BigDecimal a los 5 centavos más cercanos

Estoy tratando de averiguar cómo redondear una cantidad monetaria hacia arriba a los 5 centavos más cercanos. A continuación se muestran mis resultados esperados

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

Necesito que el resultado tenga una precisión de 2 (como se muestra arriba).

Actualizar

Siguiendo los consejos a continuación, lo mejor que pude hacer es esto.

    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)

No estoy convencido de que este sea 100% kosher; me preocupa que la precisión se pierda al convertir desde y hacia el doble. Sin embargo, es lo mejor que he encontrado hasta ahora yparece trabajar.

Respuestas a la pregunta(10)

Su respuesta a la pregunta