【问题标题】:Javascript number format to decimalJavascript数字格式到十进制
【发布时间】:2021-09-09 08:31:46
【问题描述】:

我有一个关于十进制数的问题。我需要将我的数字转换为十进制,但我无法得到我想要的。

我想要的是:

  • 我想将 130000 转换为 130,000 并将 20911.56 转换为 20,911,56(等等)

  • 首先我在这里搜索并找到了一些更改我的号码的解决方案:

          function number_format(string,decimals=2,decimal=',',thousands='.',pre='R$ ',pos=' Reais'){
              var numbers = string.toString().match(/\d+/g).join([]);
              numbers = numbers.padStart(decimals+1, "0");
              var splitNumbers = numbers.split("").reverse();
              var mask = '';
              splitNumbers.forEach(function(d,i){
                  if (i == decimals) { mask = decimal + mask; }
                  if (i>(decimals+1) && ((i-2)%(decimals+1))==0) { mask = thousands + mask; }
                  mask = d + mask;
              });
              return pre + mask + pos;
          }
          var element = document.getElementById("format");
    
           var money= number_format("130000",2,',','.');
          element.innerHTML = money;
    

上面的这段代码给了我 20.911,56,但它没有给我 130,000。相反,它是 1,300,00。我该怎么办?我不能同时拥有它们吗?

【问题讨论】:

标签: javascript format numbers decimal


【解决方案1】:

只需使用Intl.NumberFormat,如下:

const formatter = new Intl.NumberFormat('en');

console.log(formatter.format(130000)); // 130,000
console.log(formatter.format(20911.56)); // 20,911.56

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-09
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    相关资源
    最近更新 更多