我正在创建一个始终采用0.xxx格式的DOUBLE变量。虽然我希望每次都出现三位十进制数字,但我不希望看到前导零(例如:.275)。我找到了许多方法来删除STRING中的前导零,但不使用DOUBLE变量。
为了提供更多细节,我将一个int除以另一个int来获得double。我能够使用printf / .3f来到千分之一的位置,但%0.3f会导致错误。我必须遗漏一些简单的东西,但未能找到我的错误。
答案 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
答案 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 + "'");
}
}