NumberFormatException [RESOLVIDO]

Olá Pessoal,
eu estou com uma dúvida aqui
não estou conseguindo resolver
e toda hora aparece a Exception
NumberFormatException:

Exception in thread "main" java.lang.NumberFormatException: For input string: "10,00"
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
        at java.lang.Double.valueOf(Double.java:475)
        at java.lang.Double.<init>(Double.java:567)
        at model.analises.AcidezVolatil.calculaAcidezVolatil(AcidezVolatil.java:251)
        at model.analises.AcidezVolatil.main(AcidezVolatil.java:295)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 14 segundos)

Será que alguém poderia me dar uma ajuda?

[]'s.

Eu faço o seguinte calculo na linha 295:

acVol.calculaAcidezVolatil(gr);

e na linha 251 apenas calculo
um resultado simples que converte
o valor encontrado em String:

 public void calculaAcidezVolatil(GrauAlcoolico gr){
        this.av = ((EQ*this.n*(0.1*this.fc))/(10.0*this.v));
        resultado = new Double(((this.av*100*1000)/(new Double(gr.getResultado())))).toString();        
    }  

Será que alguém poderia me dar uma ajuda?

[]'s.

O problema é que 10,00 não é um número válido no Java. Se você quer um número decimal convertido para double (ou float), use “10.00”.

Abraço

Jóia ctosin?
Obrigado pela ajuda,
Mas o problema é que
eu não sei aonde está
ocorrendo essa conversão
do ponto para vírgula.
Se vc ou alguém puder me dar
uma ajuda?

[]'s.

Use a classe NumberFormat. Se você usar o pt_BR como Locale, ele vai usar virgula como separador da parte fracionaria… Você pode achar varios tutoriais por aí pra isso!

Olá pessoal,
descobri daonde está vindo essa vírgula
vem de algo parecido como esse do meu teste:

public static void main(String[] args) {
        
        DecimalFormat df = new DecimalFormat("0.00");

        double valor = 1.23569;
        String valorString = df.format(valor);
        System.out.println("Valor String = " + valorString);

    }

Alguém sabe me dizer porque eu não consigo imprimir
essa String sem lançar a exception:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1,24"
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
        at java.lang.Double.valueOf(Double.java:475)
        at java.lang.Double.<init>(Double.java:567)
        at meustestes.Main.main(Main.java:27)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

Será que alguém poderia me dar uma ajuda?

[]'s.

Como você não especificou um Locale, o Java está usando o padrão (que pra você é o pt_BR). Por isso que a formatação separa as casas decimais com “,” e não com “.”. Usar o pattern “0.00” não significa que o “.” vai ser usado: isso depende do Locale.

Existem diversas formas de resolver isso. Uma delas é esta:

public class Test {

	public static void main(String[] args) {

		DecimalFormatSymbols dfs = new DecimalFormatSymbols();
		dfs.setDecimalSeparator('.');
		DecimalFormat df = new DecimalFormat("0.00", dfs);
		
		double valor = 1.23569;
		String valorString = df.format(valor);
		System.out.println("Valor String = " + valorString);  
	}
}

Espero que tenha ajudado.
Abraço

em algum lugar do seu codigo voce esta transformando o valor e colocando uma virgula!!

Faça um debbug e descubra exatamente onde ocorre o erro… la que esta acontecendo sua conversao incorreta!

VLW :smiley:

Obrigado pessoal todo mundo pela ajuda,
e ctosin deu certo aqui com a sua dica. :smiley:

Abraço.