假设我有 x = 12.345
。在 javascript 中,什么函数 floatToInt(x)
具有最快的运行时间 floatToInt(12.345)
返回 12
?
原文由 vimfluencer 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有 x = 12.345
。在 javascript 中,什么函数 floatToInt(x)
具有最快的运行时间 floatToInt(12.345)
返回 12
?
原文由 vimfluencer 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
好问题!前几天我实际上不得不处理这个问题!只写 parseInt 似乎是一个 goto,但是等等!我们可以更漂亮。
所以我们可以使用位运算符来做很多事情,这似乎是一个很好的情况!假设我有你问题中的数字 12.345,我可以使用位运算符“~”来反转你数字中的所有位,并在此过程中将数字转换为 int! 必须爱 JS。
所以现在我们有了数字的反转位表示,然后如果我们再次“~”它,我们会得到…… 鼓声…………我们的数字没有小数!不幸的是,它不进行舍入。
我们可以为此使用 Math.round() 。但是你去吧!您可以在 JSperf 上试用它,看看您获得的轻微加速!希望有帮助!