用Java设置精度

时间:2012-01-23 04:42:00

标签: java

如果我想要一个double有9个小数位,我是否必须将它转换为字符串然后再转换为double才能执行此操作(字符串方法是我设置精度的唯一方法)?在任何情况下,设置double的精度的常规方法是什么,例如,我希望我的方法返回一个带有9位小数的双精度。

5 个答案:

答案 0 :(得分:2)

你在双重内部表现形式和它的显示之间感到困惑。内部双数总是以相同的方式存储,但你当然可以使用像DecimalFormat这样的形成器从你的双数中返回9个小数点。

答案 1 :(得分:1)

使用Big Decimal获得9个小数位

double d = 1.2345672626346;
DecimalFormat df = new DecimalFormat("#.#########");
System.out.print(df.format(d));

答案 2 :(得分:1)

您无法使用Java中的基元控制精度。您需要使用BigDecimal。阅读this excellent tutorial ..

答案 3 :(得分:0)

你也可以使用:

DecimalFormat df = DecimalFormat.getInstance(Locale.getDefault());
df.setMinimumFractionDigits(9);  //sets 9 digits after the '.'

答案 4 :(得分:0)

String formatedString = String.format("%.2f");

它将预设设定为5位数。

如果你只想用这种方式打印它。

System.out.printf("%.5f",123.2342622467);