【问题标题】:How to format a number to a string in javascript如何在javascript中将数字格式化为字符串
【发布时间】:2019-05-29 07:42:25
【问题描述】:

我正在使用 Stripe Checkout,并将金额作为数字输入,例如 11999。如何将此数字显示为$119.99 之类的字符串?

我试过new Intl.NumberFormat('en-IN', { currency: 'USD' }).format(11999)

但它显示为$ 11,999

我也试过http://numeraljs.com,但同样的问题。有人有想法吗?

【问题讨论】:

  • 当前格式有什么问题?
  • 但是它怎么给你的数字加上小数呢?
  • .format(11999 / 100) 先把美分换成美元?
  • 输入有问题。 11999是110009990
  • 谢谢@adiga。没想到这一点我觉得很愚蠢。

标签: javascript string math numbers


【解决方案1】:

首先,通过除以 100(一美元中的美分数)将美分更改为美元。然后在前面加上$

const num = 11999;
const res = "$" + (num / 100);
console.log(res);

【讨论】:

    【解决方案2】:

    您可以通过多种方式做到这一点。

    第一种方法是将其解析为一个数字,然后将其除以 100,但如果您的数字包含 2 个以上的十进制数字,则有一个缺点。

    let format = new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'USD'
    });
    
    format.format(parseFloat(11999)/100);
    

    如果您的数字有更多小数点,您可以执行以下操作:

    let numberOfDigits = 2;
    format.format(parseFloat(11999)/numberOfDigits*10);
    

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      相关资源
      最近更新 更多