使用Java中的String格式化十进制值

时间:2014-09-14 15:56:44

标签: java android format string-formatting

我是android和java编程的新手,所以请原谅我这是一个简单的问题。我的问题是在小数值的末尾添加%。我会得到双倍值,不知道小数点后的位数,我需要转换为小数点后的两位数,最后需要在最后位置添加%。问题是,我只会将double值格式化一次。我试过这个DecimalFormat(“#。##%”),但是小数点向前移动了两位数。请帮我解决这个问题。

使用DecimalFormat(“#。##%”),

实际:34.142545

产出:3414.25%

2 个答案:

答案 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("#.##'%'");