如何使用 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?.
我正在尝试使用 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?.