Upv*_*ote 13 java android decimalformat
输入看起来像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);
Run Code Online (Sandbox Code Playgroud)
结果是8.7 EUR.如何告诉格式化程序后面有两位数.?
Mat*_*ows 28
还想在这里强调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);
Run Code Online (Sandbox Code Playgroud)
或使用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);
Run Code Online (Sandbox Code Playgroud)
小智 5
我在下面的链接中找到了一个不错的解决方案
http://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html
简而言之,要将像 92323345465.30 这样的货币表示为 92,323,345,465.30 只需使用 ###,###,###,###.00
也就是说,每当您使用“0”时,“0”将被另一个数字替换,或者如果没有数字替换它,那么它就会出现!但是如果你使用'#' 那么如果没有数字来替换'#',那么那个空间就会是空的。
请记住,您甚至可以在格式之前或什至在格式字符串之后添加自己的符号,如 $ 等
| 归档时间: |
|
| 查看次数: |
28817 次 |
| 最近记录: |