我是android和java编程的新手,所以请原谅我这是一个简单的问题。我的问题是在小数值的末尾添加%。我会得到双倍值,不知道小数点后的位数,我需要转换为小数点后的两位数,最后需要在最后位置添加%。问题是,我只会将double值格式化一次。我试过这个DecimalFormat(“#。##%”),但是小数点向前移动了两位数。请帮我解决这个问题。
使用DecimalFormat(“#。##%”),
实际:34.142545
产出:3414.25%
答案 0 :(得分:1)
通过在格式中添加%,您将乘以100并添加%字符。这就是为什么它看起来像小数点移动。
您可以使用以下内容:
String output = new DecimalFormat("#.##").format(input) + "%";
另一种方法是在格式化之前除以100:
String output = new DecimalFormat("#.##%").format(input / 100.0);
答案 1 :(得分:1)
如果您在格式中使用%
,则表示您希望将值转换为百分比,但您需要记住,百分比世界中的值1
等于100%
所以值您使用将自动乘以100.要避免此行为,您可以通过引用撇号%
'%'
更改为文字
new DecimalFormat("#.##'%'");