ole1990 Posted March 5, 2012 Report Share Posted March 5, 2012 Boa tarde, Quero arredondar números ou seja quando obtenho 14.9999999 quero que fique 15, 17.599999 fique 17.6. Tenho este código e utilizo o decimal formater: DecimalFormat formatagem = (DecimalFormat)DecimalFormat.getNumberInstance(); formatagem.setMaximumFractionDigits(9) ; if(temp3_select == 1){ BigDecimal multi = new BigDecimal(1000000000); resultadoView = resultado.multiply(multi); result_view.setText(String.valueOf(formatagem.format(resultadoView))); } } Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 29, 2012 Report Share Posted April 29, 2012 Podes usar o DecimalFormater para remover uma casa decimal ao número. Admitindo que os teus números tem sempre mais de N casas decimais, usas um DecimalFormater que mostra N-1 casas decimais. DecimalFormat df = new DecimalFormat("#.#########"); Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
iron Posted April 29, 2012 Report Share Posted April 29, 2012 Ou poderás somar 0.1 ao teu valor. É o que a class Math faz para arredondamentos. Cumprimentos, iron Link to comment Share on other sites More sharing options...
Bluecora Posted April 30, 2012 Report Share Posted April 30, 2012 Existe um metodo propio para tirar a parte inteira x) ve a lista de codigo de inteiro, ja fiz um programa assim paracido nas aulas x) Link to comment Share on other sites More sharing options...
Rui Carlos Posted April 30, 2012 Report Share Posted April 30, 2012 O objectivo não me parece que seja tirar a parte inteira. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
iron Posted May 1, 2012 Report Share Posted May 1, 2012 Por exemplo, o teu valor i é 2,999. No print, ou em qualquer outra variável, podes guardar assim. h=(int)(i+0.1) Ele converterá a tua conta para um numero inteiro, como não utilizas a class Math, terás de fazer a soma de 0.1 para os casos de 0.99 e afins Espero ter ajudado Cumprimentos, iron Link to comment Share on other sites More sharing options...
bsccara Posted May 2, 2012 Report Share Posted May 2, 2012 No print, ou em qualquer outra variável, podes guardar assim. h=(int)(i+0.1) Se queres usar esse método deves somar 0.5 para números positivos e subtrair 0.5 para números negativos. 2.45 + 0.5 = 2.95 -> 2 2.55 + 0.5 = 3.05 -> 3 -2.45 - 0.5 = -2.95 -> -2 -2.55 - 0.5 = -3.05 -> -3 Para arredondar com uma casa decimal, multiplica por 10 antes e divide por 10 depois do arredondamento. Link to comment Share on other sites More sharing options...
Rui Carlos Posted May 2, 2012 Report Share Posted May 2, 2012 O problema aqui, é que não se sabe à partida o número de casas decimais que se quer. O arredondamento deverá ser feito para o número de casas decimais actual menos 1, de forma a que no caso do 99999 os 9s sejam removidos, mas nos outros casos não se percam as casas decimais (se be que iria-se sempre perder uma, a menos que se comparasse o valor novo com o antigo). Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now