java 千分符_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/,如需转载,请注明出处,否则将追究法律责任。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值