HI,
O problema aconteceu nessa função para arredondar as casas decimais de um número que utilizo no android
public static double round(double d, int decimalPlace){
// see the Javadoc about why we use a String in the constructor
// http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html#BigDecimal(double)
BigDecimal bd = new BigDecimal(Double.toString(d));
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
}
Fui utilizar e a aplicação deu esse erro java.lang.NumberFormatException: NaN
Pesquisando, descobrir que era por que na primeira utilização da rotina o resultado era zero. É uma rotina para calcular a distância em metros de duas coordenadas. E eu só vou gravar se for maior que dez.
Resolvi testando se antes o valor era zerado
double aux_metros = 0;
if ((6366000*tt) > 0){
aux_metros = round(6366000*tt, 2);
}
Achei aqui a causa do problema
Exception in thread “main” java.lang.NumberFormatException: Infinite or NaN
http://stackoverflow.com/questions/14371003/exception-in-thread-main-java-lang-numberformatexception-infinite-or-nan/14371028#14371028
Fiquem na Paz!!!
Nenhum comentário:
Postar um comentário