在app,特别是金融app里面的数字显示就尤为重要,比如:12345678900----->123.45亿;123456——>12.34万,类似这样的显示方式的处理,其实非常简单,废话不多说,直接上代码。
public static String formatMoney(double str){
String str_f = "";
if (str<10000) {
BigDecimal bg = new BigDecimal(str);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
str_f = f1 + "元";
}else if (10000<= str && str < 100000000) {
BigDecimal bg = new BigDecimal(str/10000);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
str_f = f1 + "万";
}else {
BigDecimal bg = new BigDecimal(str/100000000);
double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
str_f = f1 + "亿";
}
return str_f;
}
这里我都是自动保留了2位小数的。当然我建议大家在调用的时候传一个f,比如12300那么就传入12300f。至于为什么这样做,是预防数值太大超出double的精度。比如1454154145454154154这么多位数的数字在传入时绝对会报错的,大家不妨一试!!!