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

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

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

我的问题是我得到80.000,我正在做一个parseDouble,它将返回一个原始的double类型,我正在做一个这个双倍到2 decimals的格式。

为什么我得到80而不是80.00

我改变了方向并尝试了这个。

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

现在我正在80.000000而不是80.00

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

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

你忘记添加了.

为什么我得到80而不是80.00?

第一个例子应该是:

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

否则,任何非重要的小数位都将被抑制。

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

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

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