有没有办法防止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 %
用单引号括起来:
DecimalFormat df2 = new DecimalFormat(" #,##0.00 '%'");
默认情况下,
当您在格式字符串中使用%
时,要格式化的值将首先乘以 100。您可以使用 DecimalFormat.setMultiplier()
方法将乘数更改为 1。
double d = 65.87;
DecimalFormat df2 = new DecimalFormat(" #,##0.00 %");
df2.setMultiplier(1);
System.out.println(df2.format(d));
生产
65.87 %
我是这样做的:
// your double in percentage:
double percentage = 0.6587;
// how I get the number in as many decimal places as I need:
double doub = (100*10^n*percentage);
System.out.println("TEST: " + doub/10^n + "%");
其中 n 是您需要的小数位数。
我知道这不是最干净的方式,但它有效。
希望这有帮助。