arredondar BigDecimal para o valor mais próximo de 5 centavos

Estou tentando descobrir como arredondar um valor monetário para cima para os 5 centavos mais próximos. O seguinte mostra meus resultados esperados

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

Eu preciso que o resultado tenha uma precisão de 2 (como mostrado acima).

Atualizar

Seguindo os conselhos abaixo, o melhor que pude fazer é

    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)

Não estou convencido de que isso seja 100% kosher - estou preocupado com a precisão que pode ser perdida ao converter de e para dobros. No entanto, é o melhor que eu criei até agora eparece trabalhar.

questionAnswers(10)

yourAnswerToTheQuestion