格式化金额数与自动四舍五入

下面是一个格式化函数,可以控制小数位数,自动四舍五入。例如:12345格式化为12,345.00,12345.6格式化为12,345.60,12345.67格式化为 12,345.67,只留两位小数。

效果演示

小数点位数:   +  
 

下面为程序代码:

<script type="text/javascript">   
function fmoney(s, n)   
{   
   n = n > 0 && n <= 20 ? 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 < l.length; i ++ )   
   {   
      t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");   
   }   
   return t.split("").reverse().join("") + "." + r;   
}   
function rmoney(s)   
{   
   return parseFloat(s.replace(/[^\d\.-]/g, ""));   
}   
function g(id)   
{   
   return document.getElementById(id);   
}   
window.onload = function()   
{   
   var num,   
   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>

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

posted on 2014-10-25 21:43  复活的老羊  阅读(208)  评论(0编辑  收藏  举报

导航