【问题标题】:Math.floor kind of thing [duplicate]Math.floor 之类的东西[重复]
【发布时间】:2013-04-03 14:16:32
【问题描述】:

我发现很难搜索我的问题(不知道使用什么关键字对不起模组!)。

我想要实现的是类似于 Math.floor 函数但有点不同的东西。

我不想以小数为底,而是以 6 为底,例如:

var = 1 => return 0
var = 1.1 => return 0
var = 2 => return 0
var = 3 => return 0
var = 4 => return 6
var = 5 => return 6
var = 6 => return 6
var = 7 => return 6
....
var = 13 => return 12
var = 26 => return 24

等等

提前感谢各位的回答!

更新:Grijesh Chauhan 的回答有效!谢谢m8!

【问题讨论】:

  • 您要四舍五入到最接近的 6 倍吗?
  • Math.floor(x/6)*6 + (x % 6) > 3 ? 6 : 0
  • 如果您发现某个答案解决了您的问题,您应该通过单击答案左侧的复选标记来接受该答案。这将向其他人发出问题已解决的信号,并将代表点奖励给答案的作者。

标签: javascript function math floor


【解决方案1】:

模运算符怎么样?

i = 13;

ans = i - (i % 6)

编辑: 你想达到什么目的?地板还是天花板?

【讨论】:

    【解决方案2】:

    你还没有提到语言,你需要这个吗,试试这个C代码:

    int fun(int n){
       return (n/6)*6;
    }
    

    编辑:对于 JavaScript:

    Math.floor(n/6)*6;
    

    【讨论】:

    • 语言是javascript / jquery
    • @FR.Enki for js 做:Math.floor(n/6)*6;
    • @FR.Enki for new users
    【解决方案3】:
    function round2six(number) {
        return Math.round(number/6)*6;
    }
    

    这是一个测试代码:

    for(i=0; i<20; i++) {
        document.write(i + ' => ');
        document.write(round2six(i));
        document.write('<br/>');
    }
    

    执行结果:

    0 => 0
    1 => 0
    2 => 0
    3 => 6
    4 => 6
    5 => 6
    6 => 6
    7 => 6
    8 => 6
    9 => 12
    10 => 12
    11 => 12
    12 => 12
    13 => 12
    14 => 12
    15 => 18
    16 => 18
    17 => 18
    18 => 18
    19 => 18
    

    【讨论】:

      【解决方案4】:

      我认为它类似于:

      Math.floor((x+2)/6)*6;
      

      【讨论】:

        猜你喜欢
        • 2013-07-19
        • 2016-12-21
        • 1970-01-01
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 2012-05-19
        • 2012-06-04
        • 2017-09-15
        相关资源
        最近更新 更多