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));