在 javascript 中将 float 转换为 int 的最快方法?

新手上路,请多包涵

假设我有 x = 12.345 。在 javascript 中,什么函数 floatToInt(x) 具有最快的运行时间 floatToInt(12.345) 返回 12

原文由 vimfluencer 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 360
2 个回答

好问题!前几天我实际上不得不处理这个问题!只写 parseInt 似乎是一个 goto,但是等等!我们可以更漂亮。

所以我们可以使用位运算符来做很多事情,这似乎是一个很好的情况!假设我有你问题中的数字 12.345,我可以使用位运算符“~”来反转你数字中的所有位,并在此过程中将数字转换为 int! 必须爱 JS。

所以现在我们有了数字的反转位表示,然后如果我们再次“~”它,我们会得到…… 鼓声…………我们的数字没有小数!不幸的是,它不进行舍入。

 var a = 12.345;
var b = ~~a; //boom!

我们可以为此使用 Math.round() 。但是你去吧!您可以在 JSperf 上试用它,看看您获得的轻微加速!希望有帮助!

原文由 Hunterrex 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为这是一个很好的例子

var intvalue = Math.floor( floatvalue );
var intvalue = Math.ceil( floatvalue );
var intvalue = Math.round( floatvalue );

原文由 Firefog 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题