Java 如何将小数设置为只有两位数的双精度?

Java 如何将小数设置为只有两位数的双精度?,java,android,Java,Android,在我的回答中,我得到的值为80.00000 DecimalFormat df = new DecimalFormat("##.##"); TextField.setText(df.format(Double.parseDouble(custom.getValue()))); 我的问题是我得到了80.000,我正在做一个parseDouble,它将返回一个基本的double类型,我正在对这个double进行格式化,使其达到2位小数 为什么我得到的是80而不是80.00 我改变了我的方式,试着用这

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

DecimalFormat df = new DecimalFormat("##.##");
TextField.setText(df.format(Double.parseDouble(custom.getValue())));
我的问题是我得到了80.000,我正在做一个parseDouble,它将返回一个基本的double类型,我正在对这个double进行格式化,使其达到
2位小数

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

我改变了我的方式,试着用这个

TextField.setText(String.format("%2f",Double.parseDouble(custom.getValue()))); 
现在我得到的是
80.000000
而不是
80.00

应该是
“%.2f”
而不是
%2f”

您忘记添加

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

第一个例子应该是:

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

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

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

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

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

谢谢,这对我很有效。。
final NumberFormat nf = NumberFormat.getInstance();
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
nf.setGroupingUsed(false);
System.out.println(nf.format(123456789.123456789));