Galera tenho que converter esta String para Double exemplo:40.000,54 como que eu faço de uma maniera mais fácil, use-se o Double.parseDouble, mas o problema eh o ponto"." e virgula",". Como q eu converto esse valor para double?
nomeDaString = nomeDaString.replaceAll(".", “,”);
nomeDaString = nomeDaString.replace(’,’, ‘.’);
Aí faz o parse.
Observe que no replaceAll usa aspas duplas e no replace usa aspas simples.
Acho que dá para fazer direto assim:
nomeDaString = nomeDaString.replaceAll(".", “,”).replace(’,’, ‘.’);
(mas não testei)
Substitua o “.” por “” (vazio) e a “,” por “.”. Assim não vai dá erro no Parse.
double var = Double.parseDouble(String);
Galera nenhum deu certo vcs tem q ver q eh uma string entao não esta ocorrendo a conversao por causa do ponto e da virgula. Mais alguem tentou? O replace tb deu errado.
String nomeDaString = “8.640.000,54”;
while (nomeDaString.indexOf(".") != -1) {
nomeDaString = nomeDaString.substring(0,
nomeDaString.indexOf(".")) +
nomeDaString.substring(nomeDaString.indexOf(".") + 1);
}
nomeDaString = nomeDaString.replaceAll(",", “.”);
double d = Double.parseDouble(nomeDaString);
Atenciosamente,
Bento Monteiro
SCJP 1.4
Pois é, falha minha, o replace e o replaceAll substituem todas as ocorrências.
E não adianta fazer replaceAll(".", “,”) pq como regular expression o ponto equivale a qualquer caracter, ou seja, todos os caracteres são substituídos pela segunda string.
Mas não consegui descobrir ainda como faz o ponto ser reconhecido como ponto nas regular expression. Alguém sabe?
Yes Baby! I did.
[code]class Formatano
{
public static void main(String args[])
{
String numero = “8.640.000,56”;
numero = numero.replaceAll(".","").replace(’,’,’.’);
System.out.println(numero);
double dnumero = Double.parseDouble(numero);
System.out.println(String.valueOf((dnumero+0.44)));
}
}[/code]