Alguém pode me explicar o porquê desse erro? (NumberFormatException)

Estou emitindo valores pro xml para configurar o gráfico do fusionCharts, mas o valor que eu estou mandando tem 6 casas decimais, só que quero enviar com apenas 2. Fiz o seguinte código

                double d = 12331.2312333;
		DecimalFormat da = new DecimalFormat("0.00");
		
		System.out.println(da.format(d));

Até aí tudo bem, mas se eu enviar esse valor assim para o fusionChart ele não captura. Pensei então em parseá-lo para double novamente, que é como originalmente estava:

                double d = 12331.2312333;
		DecimalFormat da = new DecimalFormat("0.00");
		
		double valor = Double.parseDouble(da.format(d));
		System.out.println(valor);

não acusa erro de compilação, mas dá NumberFormatException. Tentei então fazer conversão de String para double:

                double d = 12331.2312333;
		
		DecimalFormat da = new DecimalFormat("0.00");
		
		String valor = "" + da.format(d);
		double mais = Double.parseDouble(valor);
		
		System.out.println(mais);

novamente NumberFormatException.

Alguém sabe o que tá rolando?? :evil: :evil:

Olá andre.froes.

Não sei se deve ajudar, mas acho que, se você instanciar a classe DecimalFormat com uma construtora sem parametros e então
informar, através do método setMaximumFractionDigits, a quantidade maxima de dígitos fracionários que você quer, talvez resolva.

DecimalFormat da = new DecimalFormat();
da.setMaximumFractionDigits(2);

Se só precisa do double truncado, tente:

Math.floor(x * 100)/100

Nessa linha

Double.parseDouble(da.format(d))

Se d = 12331.2312333

da.format(d) retorna a String 12331[color=red],[/color]23 se seu computador estiver configurado com casas decimais brasileiras… (virgula para separar decimais)

Quando você faz Double.parseDouble(“12331,23”) considerando que “12331,23” é o resultado da outra chamada dá erro pois… um double em Java separa casas decimais com ponto… e nao com virgula…

DecimalFormat formatoDois = new DecimalFormat("##,###,###,##0.00", new DecimalFormatSymbols (new Locale ("pt", "BR")));
formatoDois.setMinimumFractionDigits(2); 
formatoDois.setParseBigDecimal (true);

double num = formatoDois.format(d);

Boa tarde
andre.froes,

Estou tentando utilizar o Fusioncharts com Jsp, servlet e postgresql.
Já até consegui exibir o gráfico em tela, porém não consigo atualizar esse gráfico dinamicamente.
Voceê tem alguma ídeia/exemplo de como posso fazer isso? Hoje eu faço da seguinte forma, ao fazer um submit em uma jsp, envia uma requisição p minha servlet que faz uma consulta no banco e gera um arquivo .xml. Até ai tudo bem porém o gráfico não atualiza, só se eu fizer um refresh na pasta e reiniciar o servidor.
Existe alguma forma de eu ja passar o xml como parametro, em forma de uma String??

segue a baixo o código de como faço para exibir o relatório na minha jsp:

<div id="chartdiv" align="center" class="graficoMaiorSaida" > Test Chart</div>

                              

                               <script type="text/javascript" >
                               var chart = new FusionCharts("grafico/Pie3D.swf","ChartId","580","300","0","0");
                                  chart.setDataURL("grafico/arquivo4.xml");  <!-- XML gerado a partir de uma consulta no banco de dados. -->
                                  chart.render("chartdiv");
                                  
                                </script>

Se alguém puder me ajudar, eu agradeço muito, pois estou precisando muito disso para o meu tcc.

Desde já muito obrigado. :smiley: