【问题标题】: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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-29
      • 2011-09-24
      • 2011-09-30
      • 2013-08-05
      相关资源
      最近更新 更多