我们说x = 12.345
。在javascript中,哪个函数floatToInt(x)
的运行时间最短,floatToInt(12.345)
返回12
?
答案 0 :(得分:7)
好问题!前几天我实际上不得不处理这件事!它可能看起来像只是写parseInt,但等待!我们可以更高兴。
所以我们可以使用位运算符来处理很多事情,这看起来很棒!让我们说我的问题是12.345,我可以使用位运算符'〜'它会反转您号码中的所有位,并在此过程中将数字转换为int! 得爱JS。
所以现在我们有数字的反转位表示,如果我们'〜'它再次得到........ 鼓声 .........我们的数字没有小数!不幸的是,它并没有四舍五入。
var a = 12.345;
var b = ~~a; //boom!
我们可以使用Math.round()。但是你去!您可以在JSperf上试一试,看看你获得的速度有多快!希望有所帮助!
答案 1 :(得分:5)
这是一个很好的例子我认为
var intvalue = Math.floor( floatvalue );
var intvalue = Math.ceil( floatvalue );
var intvalue = Math.round( floatvalue );
答案 2 :(得分:1)
这样做: ~~(x + 0.5)
干杯,Z。
答案 3 :(得分:0)
算术或为零将解决问题。
> 12 === (0 | 12.245)
true