停止带有百分号的十进制格式移动小数点

2022-09-02 20:13:19

有没有办法防止对象自动将小数点后位向右移动两位?DecimalFormat

此代码:

double d = 65.87;
DecimalFormat df1 = new DecimalFormat(" #,##0.00");
DecimalFormat df2 = new DecimalFormat(" #,##0.00 %");
System.out.println(df1.format(d));
System.out.println(df2.format(d));

生产:

65.87
6,587.00 %

但我希望它能产生:

65.87
65.87 %

答案 1

用单引号将 % 括起来:

DecimalFormat df2 = new DecimalFormat(" #,##0.00 '%'");

答案 2

默认情况下,当您在格式字符串中使用 a 时,要设置格式的值将首先乘以 100。您可以使用该方法将乘数更改为 1。%DecimalFormat.setMultiplier()

double d = 65.87;
DecimalFormat df2 = new DecimalFormat(" #,##0.00 %");
df2.setMultiplier(1);
System.out.println(df2.format(d));

生产

 65.87 %

推荐