代码之家  ›  专栏  ›  技术社区  ›  Nope

Javascript:将Math.sqrt转换为int?

  •  12
  • Nope  · 技术社区  · 17 年前

    我想使用Math.sqrt 为了 循环,我想我需要它作为一个int,但我似乎不知道如何将结果转换为int。那么我该怎么做呢?

    我尝试了类似Java的东西:

    (int) Math.sqrt(num);
    

    提前感谢:)

    5 回复  |  直到 17 年前
        1
  •  25
  •   Chris Ballance    17 年前

    使用 Math.round , Math.ceil Math.floor 这取决于您的具体舍入需求。

    对于将数字四舍五入为整数,Math.round、Math.ceil和Math.floor中的一个更可取,对于可以表示为32位有符号整数的所需结果,下面描述的位操作也可能适用

    http://www.jibbering.com/faq/faq_notes/type_convert.html#tcNumber

        2
  •  5
  •   Riduidel    13 年前

    有人建议使用parseInt。这可以从字符串转换为int,但很容易将浮点数转换为字符串。

    parseInt(Math.sqrt(num)+"")
    

        3
  •  4
  •   Riduidel    13 年前

    Math.floor可以做到这一点。不过,我怀疑你甚至不需要使用整数。

    Math.floor(Math.sqrt(num));
    
        4
  •  3
  •   K Z    14 年前

    使用 parseInt(Math.sqrt(num)+"") Math.round(Math.sqrt(num)) 我认为这是因为在第一个示例中,您正在创建字符串,解析 num

        5
  •  1
  •   Ian Ooi    13 年前

    我知道这是一个老问题,但我想以后会有人发现这个问题。...

    我不会重复其他答案,但你可以做一个有趣的小技巧:

    Math.sqrt(2); //1.41......
    ~~Math.sqrt(2); //1
    

    编辑:作为注释,这将向0取整。

    推荐文章