Converter String para Double

7 respostas
L

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?

7 Respostas

J

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  para fazer direto assim:

nomeDaString = nomeDaString.replaceAll(".", ,).replace(,, .);

(mas não testei)
R

Substitua o “.” por “” (vazio) e a “,” por “.”. Assim não vai dá erro no Parse.

S

double var = Double.parseDouble(String);

L

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.

B
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

J

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?

J

Yes Baby! I did.

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)));
  }
}
Criado 14 de agosto de 2005
Ultima resposta 16 de ago. de 2005
Respostas 7
Participantes 5