输入看起来像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);

10-05 18:41