Hempx
Outubro 15, 2003, 12:33pm
#1
Queria saber se existi alguma classe do java que arredonda um double
ex:
18.6789
eu queria que ficasse :
18.68
tava olha a classe DecimalFormat mas nao achei o que queria…
caso nao exista… eu tava pensando em transforma o numero em um String e arredondar a terceira casa antes da virgula… caso exista…
existi algum jeito melhor?
obrigado.
Tenta assim[code]
DecimalFormat fm = new DecimalFormat(“0,00”);
fm.format(seuvalordouble);[/code]
xxta
Julho 9, 2008, 10:44am
#4
[quote=luiz_ross]Tenta assim[code]
DecimalFormat fm = new DecimalFormat(“0,00”);
fm.format(seuvalordouble);[/code][/quote]
Exatamente luiz_ross, mas deve-se usar “.”(ponto) no lugar da vírgula.
Ficando assim:
[code]
DecimalFormat fm = new DecimalFormat(“0.00”);
fm.format(seuvalordouble);[/code]
flws
Tem sim:
double valor = 18.6789;
valor = Math.round((valor * 100)) / 100;
Converter para string está entre as piores alternativas que alguém poderia pensar.
[quote=ViniGodoy]Tem sim:
double valor = 18.6789;
valor = Math.floor((valor * 100) + 0.5) / 100;
Converter para string está entre as piores alternativas que alguém poderia pensar.[/quote]
Concordo
… ou, generalizando:
double arredonda(double original, int casas) {
double multiplicador = Math.pow(10, casas);
return Math.round(valor * multiplicador) / multiplicador;
}
...
double valor = 18.6789;
valor = arredonda(valor);
...