如何处理带逗号的数据

来源:互联网 发布:淘宝毁了中国经济 编辑:程序博客网 时间:2024/04/28 05:33

js;

//输入数字,自动转换成带逗号的字符串。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript">
function tran(id)
{
  var v, j, sj, rv = "";
  v = id.value.replace(/,/g,"").split(".");
  j = v[0].length % 3;
  sj = v[0].substr(j).toString();
  for (var i = 0; i < sj.length; i++)
  {
    rv = (i % 3 == 0) ? rv + "," + sj.substr(i, 1): rv + sj.substr(i, 1);
  }
  var rvalue = (v[1] == undefined) ? v[0].substr(0, j) + rv: v[0].substr(0, j) + rv + "." + v[1];
  if (rvalue.charCodeAt(0) == 44)
  {
    rvalue = rvalue.substr(1);
  }
  id.value = rvalue;
}
function tran2(id)
{
  var v;
  v = id.value.replace(/,/g,"");
  alert(v);
}
</script>
<style type="text/css">
<!--
body,td,th,input {
 font-size: 12px;
}
-->
</style></head>

<body>
<input name="tt" type="text" id="tt" size="80" onkeyup="tran(this)" />
<br/>
<input name="tt" type="text" id="tt2" size="80" onkeyup="tran2(this)" />
</body>
</html>

 

 

 

 

带逗号的数据,转成float然后相加减

var a="2,222,222,222,222.55";
 var b="2,222,222,222,222.22";
 var aa=parseInt((parseFloat(a.replace(/,/g,""))*100).toFixed(0));
 var bb=parseInt((parseFloat(b.replace(/,/g,""))*100).toFixed(0));
 
 var c=0;
 c=aa+bb;
 d=c/100;
 alert(aa+"+"+bb+"="+c+"/100="+d);

 

java;

Double a=999999999999999d;
   System.out.println(String.valueOf(a));
  String b=a+"";
  String c=Float.toString(a);
  //System.out.println(b);
  //System.out.println(c);
  //将数据转换成带逗号的数据。
  java.text.NumberFormat  nf  =  java.text.NumberFormat.getInstance(); 
  String aa=nf.format(a);
  System.out.println(aa);
  //将带逗号的数据转换成double类型
   DecimalFormatSymbols dfs = new DecimalFormatSymbols();  
           dfs.setDecimalSeparator('.');  
           dfs.setGroupingSeparator(',');  
           dfs.setMonetaryDecimalSeparator('.');  
           DecimalFormat df = new DecimalFormat("###,###.##",dfs);  
             
           String bb = "3,500,000.00";  
           Number num = df.parse(bb);  
           System.out.println("带逗号的数字 处理后的结果为:"+num.doubleValue());  

 

还有个重要的知识就是正则表达式的验证

精简版:/d{1,3}(,/d{3})*([.]/d{1,2})?


细化版:([1-9]+(/.{1}/d+|/.{0})/,{0,1})+

复杂版 :([1-9]/d{0,2}(?:/./d{0,2}[1-9])?,?)+

加长版:(?:(?:[1-9]/d{0,2}|0)(?:/./d{1,3})?,){2}(?:(?:[1-9]/d{0,2}|0)(?:/./d{1,3})?)

不过这三个 都有很多bug 。

如果你有完善的验证 给告诉一下吧。