如何使用 DecimalFormat 对数字进行舍入和缩放

How to round and scale a number using DecimalFormat

我正在尝试使用 DecimalFormat 格式化数字,但问题是我没有得到预期的结果。问题是:

我有这个号码:1439131519 我只想打印前五位数字,但在 4 位数字后加一个逗号,如下所示:1439,1。我试过使用 DecimalFormat,但没有成功。

我这样试过,但没用:

 public static DecimalFormat format2 = new DecimalFormat("0000.0"); 

有人有想法吗?

做数学比格式化更容易。

假设您的号码是双数:

double d = 1439131519;
d = d / 100000;      // d = 14391,31519
d = Math.round(d)    // d = 14391
d = d / 10;          // d = 1439,1

当然,如果你愿意,你可以一行代码完成。在使用 Math.round 时,我假设您想四舍五入到最接近的值。如果你想向下舍入,你可以使用 Math.floor.

在欧洲大部分地区,逗号是常用的小数点分隔符,因此在您的语言环境中可能默认使用逗号。如果没有,您可以通过获取德国等语言环境的格式化程序来强制执行它。参见:How to change the decimal separator of DecimalFormat from comma to dot/point?.