如何格式化字符串编号以使用逗号和圆形?

问题

格式化以下作为字符串给我的数字的最佳方法是什么?

String number = "1000500000.574" //assume my value will always be a String

我希望这是一个值为1,000,500,000.57的字符串

我该如何格式化呢?


#1 热门回答(212 赞)

你可能想看看314144234class;它支持不同的语言环境(例如:在某些国家/地区可以格式化为1.000.500.000,57)。

你还需要将该字符串转换为数字,这可以通过以下方式完成:

double amount = Double.parseDouble(number);

代码示例:

String number = "1000500000.574";
double amount = Double.parseDouble(number);
DecimalFormat formatter = new DecimalFormat("#,###.00");

System.out.println(formatter.format(amount));

#2 热门回答(31 赞)

将String转换为数字后,即可使用

// format the number for the default locale
NumberFormat.getInstance().format(num)

要么

// format the number for a particular locale
NumberFormat.getInstance(locale).format(num)

#3 热门回答(26 赞)

这也可以使用String.format()来完成,如果你在一个字符串中格式化多个数字,这可能更容易和/或更灵活。

String number = "1000500000.574";
    Double numParsed = Double.parseDouble(number);

    System.out.println(String.format("The input number is: %,.2f", numParsed));
    // Or
    String numString = String.format("%,.2f", numParsed);

对于格式字符串"%,。2f" - ","表示使用逗号分隔数字组,"。2"表示舍入到小数点后的两个位置。

有关其他格式选项的参考,请参阅https://docs.oracle.com/javase/tutorial/java/data/numberformat.html