【问题标题】:Format decimal values with String in Java在 Java 中使用 String 格式化十进制值
【发布时间】:2014-11-08 05:14:07
【问题描述】:
我是 android 和 java 编程的新手,所以如果这是一个简单的问题,请原谅我。我的问题是在十进制值的末尾添加 % 。我会得到双精度值,不知道小数点后多少位数,我需要转换为小数点后两位数,最后需要在最后一个位置添加 %。问题是,我将只格式化一次双精度值。我试过这样的 DecimalFormat ("#.##%"),但小数点向前移动了两位数。请帮我解决这个问题。
使用 DecimalFormat ("#.##%"),
实际:34.142545
输出:3414.25%
【问题讨论】:
标签:
java
android
format
string-formatting
【解决方案1】:
如果你在格式中使用%,则表示你想将值转换为百分比,但你需要记住百分比世界中的值1等于100%,所以你使用的值会自动相乘100。为避免这种行为,您可以将 % 更改为文字,并用撇号 '%' 引用它
new DecimalFormat("#.##'%'");
【解决方案2】:
通过在格式中添加 %,您乘以 100 并添加 % 字符。这就是它看起来像小数点移动的原因。
你可以使用类似的东西:
String output = new DecimalFormat("#.##").format(input) + "%";
另一种方法是在格式化之前除以 100:
String output = new DecimalFormat("#.##%").format(input / 100.0);