我已经通过谷歌搜索(也许我没有看够硬),但我找不到如何把Math.sqrt成一个int。

我想用Math.sqrt的的循环,我想我需要它作为一个int,但我似乎无法弄清楚如何结果转换为int。所以,我怎么办呢?

我试过类似的东西到Java:

(int) Math.sqrt(num);

但它没有工作。

在预先感谢:)

有帮助吗?

解决方案

使用Math.roundMath.ceil,或Math.floor根据具体的舍入的需求。

“对于四舍五入编号,以整数的Math.round,Math.ceil和Math.floor是优选的,和一个用于可作为32位有符号整数下面描述也可能按位运算来表示所希望的结果服“。

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

其他提示

有人建议parseInt函数。从一个字符串为int推移,但它很容易把一个浮子为一个字符串。

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

请记住,你无论做什么,JavaScript是始终采用浮动。没有整数类型。

Math.floor将做到这一点。怀疑你甚至需要到一个整数,虽然。

Math.floor(Math.sqrt(num));

使用parseInt(Math.sqrt(num)+"")比使用Math.round(Math.sqrt(num))慢。我想,这是因为在第一个例子中,你正在创建的字符串,解析num的整数值,并围绕中。在第二个例子中你只是把int和绕着它。

我知道这是一个老问题,但我想,任何人后来发现这....

我不会重申其他的答案说什么,但一个有趣的小窍门,你可以做的是:

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

双逐位负脱落小数点后任何东西。有人告诉我,这是稍快,但我并不完全相信。

编辑:如记下此将圆朝向0

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top