2016-07-29 16 views
0

我试过两种不同的格式化某些数字的方法,以显示类似于金钱,所以到2个小数位。 不过,我已经试过的EditText字段设置为String.format()和DecimalFormat实际上没有格式化

EditText.setText (String.format("%.2f, number))

还有:

DecimalFormat precision = new DecimalFormat("0.00"); 
EditText.setText(String.valueOf(precision.format(number)); 

既不似乎已做任何事情,一切都仍然默认为设置为1个的小数位,即)30.0,如果它的任何其他东西会变成3位或更多的小数位)即30.243

+0

没有得到你的问题,你想要什么。 – Andolasoft

+0

我认为你的代码是正确的,请仔细检查一下 –

回答

3

@Mason理查德森

你试过setMinimumFractionDigits()其中规定的最低分数为你的价值

DecimalFormat precision = new DecimalFormat("#.##"); 
dec.setMinimumFractionDigits(2); 
EditText.setText(String.valueOf(precision.format(number)); 
+0

完美,那样做了,谢谢! –

+0

@MasonRichardson欢迎好友 – eLemEnt

1

试试这个

DecimalFormat precision = new DecimalFormat("0.##"); 
edittext.setText(precision.format(number)); 
0

试试这个,

 double rews = 100.89478; 
     String ada = new DecimalFormat("##.##").format(rews); 
     System.out.println(ada); 

输出

100.89 

这里.##所以它会给出2个小数点。如果你想添加3意味着使用.###

1

如果你想显示5.00 5 & 5.10 5.1再使用:

DecimalFormat formater = new DecimalFormat("#.##"); 

如果你想显示5.00为5.00 & 5.10为5.10,然后使用:

DecimalFormat formater = new DecimalFormat("#.00"); 
0

你的代码似乎是正确的,但请看看这里,

System.out.printf("Floating point number with 2 decimal digits: %.2f\n",1.21312939123); 
    System.out.printf("Floating point number with 3 decimal digits: %.3f\n",1.21312939123); 
    System.out.printf("Floating point number with 8 decimal digits: %.8f\n",1.21312939123); 
    System.out.printf("String: %s, integer: %d, float: %.6f", "Hello World",89,9.231435); 

输出:

Floating point number with 2 decimal digits: 1.21 
Floating point number with 3 decimal digits: 1.213 
Floating point number with 8 decimal digits: 1.21312939 
String: Hello World, integer: 89, float: 9.231435