如何将字符串数字的格式设置为逗号和舍入?

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

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

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

如何将其格式化为这样?


答案 1

你可能想看看十进制格式类;它支持不同的区域设置(例如:在某些国家/地区,格式会改为)。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

这也可以使用 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