ITPub博客

首页 > 应用开发 > Java > java中关于千分位

java中关于千分位

原创 Java 作者:及时人物 时间:2013-12-28 18:18:53 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/29157289/viewspace-1065272/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: android走起
请登录后发表评论 登录
全部评论

注册时间:2013-12-25

  • 博文量
    4
  • 访问量
    20041