[RESOLVIDO]Math.round  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
michaelwillian
Debugger

Membro desde: 05/12/2008 22:02:25
Mensagens: 74
Offline

estou com um problema no meu código

double z = a+b+c+d+e+f+g+h+i+j+k+l;

double zn = ( Math.round( (z * 100.0) ) ) / 100.0;


de a até l, podem haver quaisquer tipos de números com vírgula, por exemplo:

1,05 ou 4015,25. sempre duas casas depois da vírgula é claro

o problema é que o Math.round nao está arredondando para duas casas depois da vírgula e as vezes acontece o seguinte:

o resultado total fica assim: 25415,600000003

porque acontece isso? e como eu posso arrumar??

obrigado.

This message was edited 1 time. Last update was at 20/01/2010 17:41:24

thiago_spdvr
JavaTeenager
[Avatar]

Membro desde: 18/12/2008 21:42:14
Mensagens: 179
Offline


This message was edited 1 time. Last update was at 20/01/2010 17:32:18


Licenciado em Computação
[Email] [MSN]
michaelwillian
Debugger

Membro desde: 05/12/2008 22:02:25
Mensagens: 74
Offline

thiago

assim ele sempre irá arredondar para 0 depois da vírgula

eu achei uma classe que faz o que eu quero...

o código é o seguinte:


Obrigado
marcobiscaro2112
JWizard

Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline

Isso porque o double não garante precisão em operações de divisão (diferentemente do BigDecimal). Mas no caso de usar o BigDecimal há um preço a se pagar: desempenho.

Você realmente precisa do número arredondado? Não bastaria tê-lo formatado? Se esse for o caso, prefira usar DecimalFormat ao invés de BigDecimal.

Marco Biscaro.

Seja livre!

Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?

Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team