Conforme exemplo da foto, estou precisando muito converter uma string com o valor 504.456.84 para um double, estou usando o NumberFormat e não esta dando certo pois ele esta retornando o valor sem a casas decimais, como eu faço para retornar o valor em double dessa forma 504.456.84?
Número com casas decimais
A
3 Respostas
Não da pra converter esse valor porque o double não aceita essa precisão.
Você pode usar BigDecimal, Long.
String a = “504.456.84”;
NumberFormat nf = NumberFormat.getInstance();
BigDecimal bd = BigDecimal.valueOf(nf.parse(a).doubleValue());
A
1 like
O problema no código que você passou é com a string de entrada. Infelizmente o método parse é meio leniente e ao invés de lançar uma exception converte pro valor errado.
O correto seria "504,456.84" com vírgula como separador de milhares.
A
Toma cuidado com isso. Quando você chama o .doubleValue() você já tem um double e perdeu a precisão que queria. É mais garantido usar o construtor do BigDecimal que recebe string, para preservar a precisão que você quer.
Criado 2 de março de 2020
Ultima resposta 2 de mar. de 2020
Respostas 3
Participantes 3
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Apache Kafka e Spring Boot: Comunicacao assincrona entre... Por Eduardo Felipe Zambom Santana — Casa do Codigo
