2013-04-24 37 views
1

在我的回应我得到的值作为80.00000如何将小数点设置为双精度中的2位数?

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

回答

8

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

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

你忘了加.

+1

感谢。它为我工作.. – John 2015-06-24 09:17:55

2

为什么我收到80来代替是80.00?

第一个例子应该是:

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

否则任何非显著小数位将被抑制。

0

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

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)); 
相关问题