【问题标题】:Convert a whole number amount of cents to a readable dollar amount in JavaScript?在 JavaScript 中将整数美分转换为可读的美元金额?
【发布时间】:2015-09-24 18:32:41
【问题描述】:
var num = 1629; // this represents $16.29
num.toLocaleString("en-US", {style:"currency", currency:"USD"});
// outputs $1,629

到目前为止,这是我能做到的。我尝试了 toLocaleString 提供的所有选项,但似乎没有简单的方法来获得我想要的结果(这不是预期的)。 JS中没有内置函数吗?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

【问题讨论】:

    标签: javascript


    【解决方案1】:

    尝试将美分数除以 100 得到等值的美元。即:

    var num = 1629;
    var dollars = num / 100;
    dollars = dollars.toLocaleString("en-US", {style:"currency", currency:"USD"});
    

    dollars 现在等于“$16.29”

    【讨论】:

    • 谢谢,这对我来说是完美的。我考虑过这样做,但在研究我的问题时被吓倒了,因为一些关于浮点精度的帖子提到了这个函数。我的错。
    • 我认为您需要将dollars 分配给最后一行的值才能真正更改其分配。
    • 有正当理由说明为什么有人会使用.toLocalString(...),而他们只能使用dollars = '$' + dollars;
    • 根据用户所在的语言环境,输出可能会有很大差异。例如,货币符号的位置、小数点与逗号的使用以及千位分隔符等(参见developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    • 在这种情况下,en-US 语言环境中的美元货币格式将自动将123456.789 美元格式化为$123,456.79,注意货币符号的位置和类型、逗号和点,并四舍五入到小数点后 2 位。
    【解决方案2】:

    为什么不在 toLocaleString 之前除以 100?

    var num = 1629; // this represents $16.29
    num /= 100; // cent to dollar
    num.toLocaleString("en-US", {style:"currency", currency:"USD"});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多