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="相加">