[英]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。
逗号是欧洲大部分地区的正常小数分隔符,因此默认情况下在您的语言环境中可能会起作用。 如果没有,您可以通过获取诸如德国之类的语言环境的格式化程序来强制它。 请参阅: 如何将 DecimalFormat 的小数分隔符从逗号更改为点/点? .
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.