输入看起来像8.7000000
,我想将其格式化为8.70 EUR
。
我考虑过使用DecimalFormat
类:
Double number = Double.valueOf(text);
DecimalFormat dec = new DecimalFormat("#.## EUR");
String credits = dec.format(number);
TextView tt = (TextView) findViewById(R.id.creditsView);
tt.setText(credits);
结果是
8.7 EUR
。我如何告诉格式化程序.
后有两位数字? 最佳答案
在这里还想强调一下Jon Skeet关于使用整数存储所有货币的观点-不想用金钱来处理浮点舍入错误。
使用.00
而不是.##
-0
表示一个数字,#
表示一个数字(但等于零时将其隐藏)。
Double number = Double.valueOf(text);
DecimalFormat dec = new DecimalFormat("#.00 EUR");
String credits = dec.format(number);
TextView tt = (TextView) findViewById(R.id.creditsView);
tt.setText(credits);
或使用
setMinimumFractionDigits
:Double number = Double.valueOf(text);
DecimalFormat dec = new DecimalFormat("#.## EUR");
dec.setMinimumFractionDigits(2);
String credits = dec.format(number);
TextView tt = (TextView) findViewById(R.id.creditsView);
tt.setText(credits);