将金钱价值格式化为磅和便士

时间:2016-06-07 12:25:30

标签: javascript

我有帮助函数将我的钱值格式化为磅和便士:

Hello tim

给我:

formatMoney: function(10496.470000000001){ return value.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,"); },

有没有办法可以准确地将其格式化为磅和便士?所以它写着,11,496.471,001,001,001

2 个答案:

答案 0 :(得分:0)

除了前面提到的toFixed方法调用之外,要替换的第二个参数应该是" $ 1,"而不是" 1,"。此外,您转换为数字有点脆弱。我试图解决这些问题:



function convert(value){
    return "£"+((Number(value)||0).toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"))+"p";
}

console.log(convert(10496.470000000001));




答案 1 :(得分:-1)

Regexp并不关心你传入的小数。你需要将你的输入转换为已经有2位小数:

return value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,");
             ^^^^^^^^^^



function convert(value){
    return value.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g, "1,");
}

console.log(convert(10496.470000000001));