【问题标题】:Format a number to two decimal places将数字格式化为两位小数
【发布时间】:2011-06-04 08:42:08
【问题描述】:

给我一​​个原生的(请不要使用 jQuery、Prototype 等)JavaScript 函数来转换数字,如下所示:

input:  0.39, 2.5,  4.25, 5.5,  6.75, 7.75, 8.5
output: 0.39, 2.50, 4.25, 5.50, 6.75, 7.75, 8.50

例如,在 Ruby 中,我会这样做:

>> sprintf("%.2f", 2.5)
=> "2.50"

输出可以是数字或字符串。我真的不在乎,因为我只是用它来设置innerHTML

谢谢。

【问题讨论】:

  • @T.J.Crowder,很抱歉没有回复您的评论。感谢您指出这一点并要求我澄清。我不记得我想要什么,但我们就说5.52,因为这就是Number.prototype.toFixed() 似乎返回的内容,我接受了它作为答案。
  • @T.J.Crowder,????。如果 Stack Overflow 有一个徽章就好了。 (一切都很好。)谢谢!你也是,快乐的编码! :-)

标签: javascript numbers number-formatting


【解决方案1】:
input = 0.3;
output = input.toFixed(2);
//output: 0.30

【讨论】:

    【解决方案2】:

    您可以对Number 对象使用toFixed() 方法:

    var array = [0.39, 2.5,  4.25, 5.5,  6.75, 7.75, 8.5], new_array = [];
    for(var i = 0, j = array.length; i < j; i++) {
        if(typeof array[i] !== 'number') continue;
        new_array.push(array[i].toFixed(2));
    }
    

    【讨论】:

      【解决方案3】:

      使用toFixed 2 作为小数位数。

      【讨论】:

        【解决方案4】:

        您也可以将Intl.NumberFormat(){ style: 'percent'} 一起使用

        var num = 25;
        
        var option = {
          style: 'percent'
        
        };
        var formatter = new Intl.NumberFormat("en-US", option);
        var percentFormat = formatter.format(num / 100);
        console.log(percentFormat);

        【讨论】:

        • 不错。谢谢。除了您的代码不适用于我的问题正文中的输入和输出。我刚刚编辑了我的问题的标题以更好地匹配它的正文。这种方式回答了我的问题:console.log(new Intl.NumberFormat('en-US', {minimumFractionDigits: 2}).format(2.5)).
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-12
        • 2011-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多