Contornar uma ArithmeticException

2 respostas
Ironlynx

Qual a melhor forma de contornar uma ArithmeticException?Explico, tenho um método assim:

public static String calcularIndicador(String valorInicial,String valorFinal){ BigDecimal valor1=new BigDecimal(valorInicial); BigDecimal valor2=new BigDecimal(valorFinal); BigDecimal resultado=valor1.divide(valor2,6,BigDecimal.ROUND_UP); return resultado.toString(); }
Qual o problema?Os valores vem da base com QUATRO casas,e porque eu precisaria de 6?Por que o valor será multiplicado por 100 para obter o valor em % com 4 casas decimais(sim, o pessoal aqui é louco, e seria melhor alguém ter gravado os números com 6 no banco).Invariavelmente, vem uma ArithmeticException vez ou outra.Qual seria a melhor forma de resolver isso com MENOR perda.Usar um array pegando um divideAndRemainder da vida?Injetar casas arificialmente nos dois parâmetros?(00 em cada um).

2 Respostas

Vini_Fernandes

Cara, na aulas de calculo numerico da faculdade lembro-me que quando tinhamos dois numeros com casas de precisao diferentes, por exemplo 3.141592 e 2.51, e desejavamos um multiplicacao, faziamos o seguinte: 3.141592 * 2.510000 = 7.88539592 e arredondavamos o resultado final de acordo com a precisao desejada, que poderia ser 4 casas decimais, assim teriamos: 7.8854
Resumindo: nao vejo problema voce “injetar” zeros para obter o resultado! Agora, nao sei se esse artificio é o mais elegante!

Abracao

Vini_Fernandes

Caso esteja enganado, por favor, digam!!..rsrs

Criado 11 de fevereiro de 2009
Ultima resposta 11 de fev. de 2009
Respostas 2
Participantes 2