Estou com um problema e não encontrei solução para isso no pai GOOGLE. Preciso arredondar um valor que recebo em uma variável double, até aí tudo bem, o ceil() resolveria meu problema, mas preciso arredondar o valor para os próximos 0,05 centavos.
Multiplique o número por 20.0, arredonde (usando Math.rint talvez), e então divida de volta por 20.0.
Por que isso funciona?
É que há apenas 20 valores possíveis (0.00, 0.05, 0.10… até 0.95) para esses valores em centavos. É por isso que multiplicar por 20, arredondar, e dividir por 20 funciona.
preco=Math.rint(20.0*preco)/20.0;
T
thingol
É porque a resposta desse problema poderia ser encontrada na sua cabeça
toredobud
thingol,
Eu tentei resolver usando minha cabeça, porém estava cometendo um erro na multiplicação, usei 100.0 * preco ao invez de 20.0 * preco.
preco = Math.rint (100.0 * preco) / 20.0;
Obrigado pela força.
M
marcobiscaro2112
Ou ainda, você pode formatar o número usando o String.format() e passar para double depois. Algo como: