2

在我的回应中,我得到的价值是80.00000

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

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

为什么我得到80而不是80.00

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

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

现在我80.000000得到而不是80.00

4

4 回答 4

11

应该"%.2f"代替"%2f"

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

你忘记添加.

于 2013-04-24T12:14:54.777 回答
2

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

第一个例子应该是:

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

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

于 2013-04-24T12:17:27.843 回答
2

java.text.NumberFormat是一个不错的选择

final NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
nf.setGroupingUsed(false);
System.out.println(nf.format(123456789.123456789));
于 2013-04-24T12:32:14.763 回答
0

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

于 2013-04-24T12:18:27.393 回答