问题
格式化以下作为字符串给我的数字的最佳方法是什么?
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