使用Javascript:铸造Math.sqrt为int?
-
20-08-2019 - |
题
我已经通过谷歌搜索(也许我没有看够硬),但我找不到如何把Math.sqrt成一个int。
我想用Math.sqrt的的的循环,我想我需要它作为一个int,但我似乎无法弄清楚如何结果转换为int。所以,我怎么办呢?
我试过类似的东西到Java:
(int) Math.sqrt(num);
但它没有工作。
在预先感谢:)
解决方案
使用Math.round
,Math.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
不隶属于 StackOverflow