Será que alguém sabe como “desformatar” valores monetários para double para efetuar cálculos?
Por exemplo o valor 12.345.678,90, “desformatado” deveria ficar 12345678,90;
Preciso exatamente do contrário da pergunta abaixo;
http://www.guj.com.br/posts/list/55876.java#293393
Obrigado!
Kra pq vc nao faz um replaceAll(".","") na variavel…
O método correto (embora um pouco lento) para fazer isso é usar DecimalFormat:
import java.util.*;
import java.text.*;
class TesteDecimalFormat {
public static void main(String[] args) {
NumberFormat nf = new DecimalFormat (",###.##", new DecimalFormatSymbols (new Locale ("pt", "BR")));
double d = 0;
try {
d = nf.parse ("12.345.678,90").doubleValue();
} catch (ParseException ex) {
System.out.println ("Valor com formatação inválida!");
}
System.out.println (d); // imprime em notação científica: 1.23456789E7
double e = d * 1.75; // vou somar 75% ao valor original
System.out.println (nf.format (e)); // deve imprimir 21.604.938,08
}
}