java.lang.NumberFormatException: For input string: "20,475.00"

zairahCS picture zairahCS · Mar 11, 2012 · Viewed 10k times · Source

i am trying to get the running balance of my system. To do it, i get the sum of all numbers in the jtable from column AMOUNT and subtract the sum to the value inside the txtLoanAmount. here's my code snippet:

String LoanAmount = txtLoanAmount.getText();
float f = Float.valueOf(LoanAmount.trim()).floatValue();
float balance = 0; 
float sum = 0;

for(int i=0;i<=tableLedger.getRowCount()-1;i++) {
    sum = sum + Float.parseFloat(tableLedger.getModel().getValueAt(i, 2).toString());
}
balance = f - sum;
System.out.println(balance);

now i get the error message :

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "20,475.00"

How can i solve this ? any help will be appreciated. Thanks

Answer

Joachim Isaksson picture Joachim Isaksson · Mar 11, 2012

Since Float.parseFloat() and Float.valueOf() always will assume that the number is in your local format, here's a short example how to do localized parsing if your locale does not match the number format you're getting.

String str = "20,475.00";
NumberFormat nf = NumberFormat.getInstance(Locale.US); // Looks like a US format
float f = nf.parse(str).floatValue();