关于java:如何在双打中将小数设置为仅2位数?

How to set decimals to only 2 digits in Doubles?

本问题已经有最佳答案,请猛点这里访问。

在我的回答中,我得到的值是80.00000

1
2
DecimalFormat df = new DecimalFormat("##.##");
TextField.setText(df.format(Double.parseDouble(custom.getValue())));

我的问题是我得到了80000,我正在做一个parsedouble,它将返回一个原始的double类型,我正在做一个到2 decimals的double格式。

为什么我要用80而不是80.00

我改变了我的方式,尝试了这个。

1
TextField.setText(String.format("%2f",Double.parseDouble(custom.getValue())));

现在我要用80.000000代替80.00


应该是"%.2f",而不是"%2f"

1
TextField.setText(String.format("%.2f",Double.parseDouble(custom.getValue())));

你忘了加上EDOCX1[2]


java.text.NumberFormat是一个很好的选择

1
2
3
4
5
final NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
nf.setGroupingUsed(false);
System.out.println(nf.format(123456789.123456789));


Why am i getting 80 instead of 80.00?

第一个例子应该是:

1
DecimalFormat df = new DecimalFormat("##.00");

否则,任何非有效小数都将被抑制。


在string.format参数中将%2f改为%.2f