Erro com DecimalFormat

1 resposta
J

DAe galera!! Eu esta testando essa classe e está dando o seguinte erro:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Number
        at java.text.DecimalFormat.format(DecimalFormat.java:480)
        at java.text.Format.format(Format.java:133)
        at geral.Formata.main(Formata.java:49)
Segue a classe de teste:
import java.text.DecimalFormat;
import java.text.*;

import javax.swing.JOptionPane;
/**
 *
 * @author Administrador
 */
public class Formata {
    
    private DecimalFormat format1;
    private DecimalFormat format2;
    //private DecimalFormat format3 = new DecimalFormta("0.00");
    
    /** Creates a new instance of Formata */
    public Formata() {
    }
    
    public static void main( String args[] ) {
        
        DecimalFormat objNumberFormat;
        DecimalFormatSymbols objNumberFormatSymbols;
        objNumberFormatSymbols = new DecimalFormatSymbols();
        objNumberFormat = (DecimalFormat)DecimalFormat.getInstance();
        objNumberFormatSymbols.setDecimalSeparator(',');
        objNumberFormatSymbols.setGroupingSeparator('.');
        objNumberFormat.setDecimalFormatSymbols(objNumberFormatSymbols);
        
        
        
        String strValue = JOptionPane.showInputDialog(null,"Valor");
        
        objNumberFormat.setMinimumFractionDigits( 3 );
        objNumberFormat.setMaximumFractionDigits( 3 );
        
        
        while( strValue!= null || "".equals(strValue)) {
            JOptionPane.showMessageDialog(null, "" + objNumberFormat.format(strValue));
            strValue = JOptionPane.showInputDialog(null,"Valor");
        }
        
        
        System.exit(0);
    }
    
}

Fiquem com Deus!!

1 Resposta

L

Penso que vc ta tentando usar o formatNumber em uma String

// Sua String
String strValue = JOptionPane.showInputDialog(null,"Valor");

 
//Acho que aqui voce ta recebendo o erro 
JOptionPane.showMessageDialog(null, "" + objNumberFormat.format(strValue)); // Voce criou uma String e esta tentando formatar ela usando o DecimalFormat

// Tente mudar o tipo de String para double
Criado 2 de abril de 2007
Ultima resposta 2 de abr. de 2007
Respostas 1
Participantes 2