function (m,n){
m = Number(m)
m = m.toLocaleString().split(".")[0]+(n==0?"":"." + m.toFixed(n||2).split(".")[1]);
    return "¥" + m.replace(/^\./, '0.');
}
上面这个是金额格式化函数如m=20000格式后变为¥20,000.00
请问,函数中的n是什么意思,如果我不要每隔3位的逗号“,”应怎么改?
比如我想把1998.2格式后变为¥1998.20

解决方案 »

  1.   

    好像把toLocaleString()去掉就可以了,这个方法网上说是对日期对象用的,他还能格式金额?
    另外m.replace(/^\./, '0.');这个表达式是什么意思,关键是^\.是啥?
      

  2.   

    m.replace(/^\./, '0.'); 将".12"编程"0.12"而已
      

  3.   

    1:n是保留的小数点位数2:比如我想把1998.2格式后变为¥1998.20
    去掉toLocaleString()
    function c(m, n){
    m = Number(m);
    m = (''+m).split(".")[0] + (n == 0 ? "" : "." + m.toFixed(n||2).split(".")[1]);
    return "¥" + m.replace(/^\./, '0.');
    }c(1998.2, 2)toLocaleString()将金额转换成本地平台表示的格式,但是在某些浏览器中可能不起作用。m.toFixed(n||2) 是将金额转换成固定小数位数的字符串,但是最后一位小数会四舍五入m.replace(/^\./, '0.')  当结果是已小数点开头,即没有0时,将点转换成 0. (可能在某些情况下m会出现.1998的情况)