Convert a String with comma inside to Number/Double/int - Java

54 views
Skip to first unread message

Lei

unread,
Jul 1, 2013, 11:56:08 AM7/1/13
to programmin...@googlegroups.com

What is the easiest and correct way to convert a String number with commas (for example: 835,111.2) to a Double instance.

Lei

unread,
Jul 1, 2013, 11:57:09 AM7/1/13
to programmin...@googlegroups.com

Have a look at java.text.NumberFormat. For example:

import java.text.*;
import java.util.*;

public class Test
{
    // Just for the sake of a simple test program!
    public static void main(String[] args) throws Exception
    {
        NumberFormat format = NumberFormat.getInstance(Locale.US);

        Number number = format.parse("835,111.2");
        System.out.println(number); // or use number.doubleValue()
    }
}

Depending on what kind of quantity you're using though, you might want to parse to a BigDecimalinstead. The easiest way of doing that is probably:

BigDecimal value = new BigDecimal(str.replace(",", ""));

or use a DecimalFormat with setParseBigDecimal(true):

DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(Locale.US);
format.setParseBigDecimal(true);
BigDecimal number = (BigDecimal) format.parse("835,111.2");
Reply all
Reply to author
Forward
0 new messages