格式化较大数字的显示问题

来源:互联网 发布:两个数据对比的图表 编辑:程序博客网 时间:2024/05/21 08:03

在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这么多位数的数字在传入时绝对会报错的,大家不妨一试!!!

0 0
原创粉丝点击