【问题标题】:How can I round to whole numbers in JavaScript?如何在 JavaScript 中舍入整数?
【发布时间】:2011-10-21 12:50:22
【问题描述】:

我有以下代码来计算某个百分比:

var x = 6.5;
var total;

total = x/15*100;

// Result  43.3333333333

结果我想要的是确切的数字43,如果总数是43.5,它应该四舍五入到44

有没有办法在 JavaScript 中做到这一点?

【问题讨论】:

    标签: javascript operators rounding


    【解决方案1】:

    使用Math.round() 函数将结果四舍五入为最接近的整数。

    【讨论】:

    • 也帮助了我! :) 感谢提供 MDN 链接的朋友 :)
    • 链接的功劳归@Jeremy。感谢您插入它 - 让我写的第五个答案获得与这个答案一样多的选票,这让我从 SO 开始变得更加有趣,这肯定是由于链接。 :-)
    • OP 不想四舍五入吗?如果是这样,也许Math.ceil() 会更合适
    • @martellex:从问题来看,OP 希望 43.333 舍入到 43,但 43.5 舍入到 44,这完全符合 ECMAScript 的 Math.round() 舍入到最近的行为,并且 向正无穷方向运行精确的半整数。
    【解决方案2】:
    //method 1
    Math.ceil(); // rounds up
    Math.floor(); // rounds down
    Math.round(); // does method 2 in 1 call
    
    //method 2
    var number = 1.5; //float
    var a = parseInt(number); // to int
    number -= a; // get numbers on right of decimal
    
    if(number < 0.5) // if less than round down
        round_down();
    else // round up if more than
        round_up();
    

    一个或一个组合都可以解决您的问题

    【讨论】:

      【解决方案3】:

      使用Math.round 将数字四舍五入到最接近的整数:

      total = Math.round(x/15*100);
      

      【讨论】:

        【解决方案4】:
        total = Math.round(total);
        

        应该这样做。

        【讨论】:

          【解决方案5】:

          对浮点 x 进行舍入的非常简洁的解决方案:

          x = 0|x+0.5

          或者如果你只是想把你的浮子放在地板上

          x = 0|x

          这是一个按位或int 0,它会删除小数点后的所有值

          【讨论】:

            猜你喜欢
            • 2022-07-27
            • 2011-12-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-16
            • 2010-11-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多