js 数字,金额 用逗号 隔开。数字格式化

例如:

12345格式化为12,345.00

12345.6格式化为12,345.60

12345.67格式化为12,345.67

只留两位小数。

回来后写了个格式化函数。可以控制小数位数,自动四舍五入。

代码如下:

引用

functionfmoney(s,n)

{

n=n>0&&n<=20?n:2;

s=parseFloat((s+"").replace(/[^\d\.-]/g,"")).toFixed(n)+"";

varl=s.split(".")[0].split("").reverse(),

r=s.split(".")[1];

t="";

for(i=0;i<l.length;i++)

{

t+=l[i]+((i+1)%3==0&&(i+1)!=l.length?",":"");

}

returnt.split("").reverse().join("")+"."+r;

}

调用:fmoney("12345.675910",3),返回12,345.676

还原函数:

引用

functionrmoney(s)

{

returnparseFloat(s.replace(/[^\d\.-]/g,""));

}

示例(可保存一下代码为html文件,运行查看效果):

引用

<SCRIPT>

functionfmoney(s,n)

{

n=n>0&&n<=20?n:2;

s=parseFloat((s+"").replace(/[^\d\.-]/g,"")).toFixed(n)+"";

varl=s.split(".")[0].split("").reverse(),

r=s.split(".")[1];

t="";

for(i=0;i<l.length;i++)

{

t+=l[i]+((i+1)%3==0&&(i+1)!=l.length?",":"");

}

returnt.split("").reverse().join("")+"."+r;

}

functionrmoney(s)

{

returnparseFloat(s.replace(/[^\d\.-]/g,""));

}

functiong(id)

{

returndocument.getElementById(id);

}

window.onload=function()

{

varnum,

txt=g("txt"),

txt2=g("txt2"),

btn=g("btn"),

btn2=g("btn2"),

span=g("span");

btn.onclick=function()

{

num=parseInt(g("num").value);

txt.value=fmoney(txt.value,num);

txt2.value=fmoney(txt2.value,num);

}

;

btn2.onclick=function()

{

num=parseInt(g("num").value);

span.innerHTML="="+fmoney(rmoney(txt.value)+rmoney(txt2.value),num);

}

;

}

;

</SCRIPT>

小数点位数:

<selectid="num">

<optionvalue="2">2</option>

<optionvalue="3">3</option>

<optionvalue="4">4</option>

<optionvalue="5">5</option>

</select>

<inputtype="text"id="txt"value="12345.675910">+

<inputtype="text"id="txt2"value="1223"><spanid="span"></span>

<br>

<inputtype="button"id="btn"value="格式化">

<inputtype="button"id="btn2"value="相加">

相关推荐