java中关于千分位

java中对于字符串(正负数字)进行展示的时候,展示成千分位格式和保留小数位。

解决的方法有两种,一种是后台java进行处理,另一种是前台js处理。

第1种方法:工具类(只适合不带正负号的数字的字符串),此方法是保留两位小数位,整数位是千分位格式
//千分位方法
    public static String fmtMicrometer(String text)  
    {  
        DecimalFormat df = null;  
        if(text.indexOf(".") > 0)  
        {  
            if(text.length() - text.indexOf(".")-1 == 0)  
            {  
                df = new DecimalFormat("###,##0.");  
            }else if(text.length() - text.indexOf(".")-1 == 1)  
            {  
                df = new DecimalFormat("###,##0.0");  
            }else  
            {  
                df = new DecimalFormat("###,##0.00");  
            }  
        }else   
        {  
            df = new DecimalFormat("###,##0");  
        }  
        double number = 0.0;  
        try {  
             number = Double.parseDouble(text);  
        } catch (Exception e) {  
            number = 0.0;  
        }  
        return df.format(number);  
    }

如果带正负号如String s = -38475000.9098
if(s.startsWith("-")){
                            String s=this.fmtMicrometer(strResults.substring(1, strResults.length()));
                            System.out.println(s);
                        }

//得到的结果就是-38,475,000.90

第2种方法:前台js处理
可能会稍微复杂点,因为他没有专门的类对其进行处理,全靠硬拼。我这边有easyui页面展示时对数据的处理方法,大家可以借鉴,也可以剥离出来。我这边就不整理了(我比较讨厌前台处理)。

function formatDiff(s, rowData, rowIndex){
    //n = n>0 && n<=20 ? n : 2;
    var n=2;
    s = parseFloat((s+"").replace(/[^\d\.-]/g,"")).toFixed(n)+"";
    var l = s.split(".")[0].split("").reverse(),
    r = s.split(".")[1];
    t = "";
    for(i = 0;i         t+=l[i]+((i+1)%3==0 && (i+1) != l.length ? "," : "");
    }
    var v= t.split("").reverse().join("")+"."+r;
    if(v.match("-,")){
        return v.replace("-,","-");
    }else{
        return v;   
    }
};

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29157289/viewspace-1065272/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29157289/viewspace-1065272/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值