平均领先零

时间:2015-04-02 07:19:11

标签: java format double

我正在创建一个始终采用0.xxx格式的DOUBLE变量。虽然我希望每次都出现三位十进制数字,但我不希望看到前导零(例如:.275)。我找到了许多方法来删除STRING中的前导零,但不使用DOUBLE变量。

为了提供更多细节,我将一个int除以另一个int来获得double。我能够使用printf / .3f来到千分之一的位置,但%0.3f会导致错误。我必须遗漏一些简单的东西,但未能找到我的错误。

3 个答案:

答案 0 :(得分:2)

您可以使用DecimalFormat课程。类似的东西:

System.out.println(new DecimalFormat(".###").format(x));

答案 1 :(得分:1)

看起来好像使用DecimalFormat有效:

import java.text.DecimalFormat;

public class DecimalPrintNoZero
{
  public static void main(String[] args)
  {
    double d = 0.275;
    DecimalFormat df = new DecimalFormat("#.000");
    System.out.println(df.format(d));
  }
}

参考文献:

http://developer.android.com/reference/java/text/DecimalFormat.html

Java - Format number to print decimal portion only

答案 2 :(得分:0)

十进制格式将起作用

public class DoublePrinter {
public static void main(String[] args) {
    Double d = 0.325;
    DecimalFormat format = new DecimalFormat("0.000");
    Double price2 = Double.parseDouble(format.format(d));
    System.out.println(price2);

    String s = format.format(d);
    System.out.println("s is '" + s + "'");
}

}