我的加千逗号功能不起作用

时间:2019-03-26 10:34:08

标签: javascript

我有一个函数,可以将值转换为带有数千个逗号的值,并且可以与其他html格式之一一起使用,但不能与之兼容。谁能看到我的代码有问题?

--- javascript ---

function numberWithCommas(x) {
      return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  }
  function calcule2(){
  var i=0; for (i=0;i<= 29;i++) {calcule();}}
  function calcule(){

  var C20 = Excel2Html.C20.value=+parseFloat(Excel2Html.C19.value)*parseFloat(Excel2Html.E16.value)*4;
var C21 = Excel2Html.C21.value=+parseFloat(Excel2Html.C20.value)*0.22;

Excel2Html.C20.value=(numberWithCommas(C20));
Excel2Html.C21.value=(numberWithCommas(C21));

--- html ---

<input type="text" onchange="calcule2()" name="E16" value="100" size="5" style="background: #67823A; border: none; color: #ffffff;">
<input type="text" onchange="calcule2()" name="C20" value="196000" size="5" disabled="disabled">
<input type="text" onchange="calcule2()" name="C21" value="43120" size="5" disabled="disabled">

C20返回-196000 C21返回-43120

但是,应该是:

C20 = 196,000 C21 = 43,120

1 个答案:

答案 0 :(得分:2)

已经有按照您想要的方式格式化数字的方法。

您可以使用toLocaleString()

function numberWithCommas(value) {
    return Number(value).toLocaleString("en");
}

document.querySelector("#number").addEventListener("input", function() {
  console.log(numberWithCommas(this.value));
});
<input type="number" id="number" />