【问题标题】:How to format a dollar? [duplicate]如何格式化美元? [复制]
【发布时间】:2011-07-17 11:11:51
【问题描述】:

可能重复:
How can I format numbers as money in JavaScript?

我正在做一个除法和乘法来计算一个字段的值,这个值看起来像这样

$32560.000000000004.00

我正在设置这样的值

sq_footage = $("#sq_footage").val();
sq_footage_total = (((sq_footage / 36) * factor) * average )* 30;
if(factor != ""){
    $("#new_calc").val("$" + sq_footage_total + ".00");
}

有没有办法像这样格式化

$32,560.00

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您的标签表明您正在使用 jquery - 所以您可以使用 jQuery Format Currency Plugin

【讨论】:

    【解决方案2】:

    我知道这个问题之前已经解决了,但我的解决方案只是为了好玩:

    function formatDollar(num) {
        var p = num.toFixed(2).split(".");
        return ["$", p[0].split("").reverse().reduce(function(acc, num, i) {
            return num + (i && !(i % 3) ? "," : "") + acc;
        }, "."), p[1]].join("");
    }
    

    还有一些测试:

    formatDollar(45664544.23423) // "$45,664,544.23"
    formatDollar(45) // "$45.00"
    formatDollar(123) // "$123.00"
    formatDollar(7824) // "$7,824.00"
    formatDollar(1) // "$1.00"
    formatDollar(939,009) // ?
    

    function formatDollar(num) {
          var p = num.toFixed(2).split(".");
          return ["$", p[0].split("").reverse().reduce(function(acc, num, i) {
            return num + (i && !(i % 3) ? "," : "") + acc;
          }, "."), p[1]].join("");
        }
    
    
        const tests = [
          {
            input: 45664544.23423,
            expected: "$45,664,544.23"
          },
          {
            input: 45,
            expected: "$45.00"
          },
          {
            input: 123,
            expected: "$123.00"
          },
          {
            input: 7824,
            expected: "$7,824.00"
          },
          {
            input: 1,
            expected: "$1.00"
          },
          {
            input: -939009,
            expected: "-$939,009.00"
          }
        ]
    
        tests.forEach(test => {
          const { input, expected } = test
          const actual = formatDollar(input)
          if (expected !== actual) {
            console.log(`Failed: ${input}. Expected ${expected}; actual: ${actual}`)
          } else {
            console.log(`Passed: ${input}`)
          }
        })

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多