Formatar double

7 respostas
B

Olá pessoal,

Eu tenho uma variável Double e estou exibindo o conteúdo dela assim:

Double quantidade = new Double(166.6);
NumberFormat formatador = NumberFormat.getInstance();
System.out.println( formatador.format(quantidade));

O problema é q eu preciso q o usuário possa alterar o valor dessa variável, mas daí eu não sei qual é a melhor forma de fazer o programa ler números com virgula (caso o usuário digite uma virgula) para armazenar nessa variável Double.

Qual é a melhor forma?

Obrigada…

7 Respostas

Marlon_Meneses

faça um replace da “,” pelo “.” pra reparar se o usuario digitar “,” e depois converta pra double

thiago.correa

Oi,n ão sei se há uma maneira mais simples, mas essa funciona :smiley:

import java.text.NumberFormat;

import java.util.Locale;

public class Class1 {
    public Class1() {
    }

    public static void main(String[] args) {
        String _double = "1.325,66";
        _double = _double.replaceAll("\.","");
        _double = _double.replaceAll("\,",".");
        System.out.println(_double);
        NumberFormat formater = NumberFormat.getInstance(new Locale("pt_BR"));
        Double d = new Double(_double);
        System.out.println(formater.format(d));
        
    }
}
B

Então eu fiz isso e funciona, mas se o usuário digitar o um número tipo: 1.50.3 ele vai converter pra 1503, como se fosse um valor de entrada aceitável.
Tenho q tratar isso no braço msm ou tem uma forma mais inteligente?

obrigada…

jingle

da uma olhada no applyPattern do DecimalFormat se não me engano faz algo parecido com isto.

RodyBr

Oi, no link http://www.guj.com.br/posts/list/51847.java você pode encontra o link para o DecimalFormat e mais uma dica para o seu caso. Valeu. :wink:

B

Pessoal, obrigada mesmo pelas dicas… Funcionou :slight_smile:

try{
    NumberFormat nFormat = NumberFormat.getInstance(new Locale("pt", "BR"));
    double valor = nFormat.parse(string).doubleValue();		 
    System.out.println(valor);
}catch (java.text.ParseException e) {
    e.printStackTrace();		
}

Até mais.

B

Mas ele ainda aceita números como 1.1.1.1.1

Bom, acho q está bom assim.

Criado 3 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 7
Participantes 5