parseint()
// js內建函式,注意接受引數是string,所以呼叫該方法時存在型別轉換
parseint
("1.5555"
) // => 1
number.tofixed(0)
// 注意tofixed返回的字串,若想獲得整數還需要做型別轉換
1.5555.tofixed
(0) // => "1"
math.ceil()
// 向上取整
math.ceil
(1.5555) // => 2
math.floor()
// 向下取整
math.floor
(1.5555) // => 1
math.round()
// 四捨五入取整
math.round
(1.5555) // => 2
math.round
(1.4999) // => 1
math.trunc()
// 捨棄小數取整
math.trunc
(1.5555) // => 1
雙按位非取整
// 利用位運算取整,僅支援32位有符號整型數,小數字會捨棄,下同
~~1.5555 // => 1
按位運或取整
1.5555 | 0 // => 1
按位異或取整
1.5555^0 // => 1
左移0位取整
1.5555<<0 // => 1
上述10種取整方法中,最常用的估計是前2種[我裂開~~],不過從效能角度看,位運算取整和math函式效能最佳,內建方法parseint次之,tofixed效能最劣。
以下是benchmark測試結果,證明了這點,tofixed效能是最差的:
darwin x64
整數取整#getnum1#parseint x 210,252,532 ops/sec ±2.74% (85 runs sampled)
整數取整#getnum2#tofixed x 3,281,188 ops/sec ±1.54% (86 runs sampled)
整數取整#getnum3#math.ceil x 778,272,700 ops/sec ±3.97% (87 runs sampled)
整數取整#getnum4#math.floor x 816,990,140 ops/sec ±0.54% (88 runs sampled)
整數取整#getnum5#math.round x 814,868,414 ops/sec ±0.65% (88 runs sampled)
整數取整#getnum6#math.trunc x 821,032,596 ops/sec ±0.54% (91 runs sampled)
整數取整#getnum7#~~num x 813,589,741 ops/sec ±0.67% (90 runs sampled)
整數取整#getnum8#num | 0 x 815,070,107 ops/sec ±0.65% (90 runs sampled)
整數取整#getnum9#num ^ 0 x 812,635,464 ops/sec ±0.74% (90 runs sampled)
整數取整#getnum10#num << 0 x 819,230,753 ops/sec ±0.49% (91 runs sampled)
fastest is 整數取整#getnum6#math.trunc,整數取整#getnum10#num << 0
js數值各種取整方法
捨棄小數點後面的所有數字只留下前面整數。parseint 格式num 12.34 let num1 parseint num console.log num1 12 以上所示,將會輸出整數12 小數點後一位如果大於或者等於5,整數部分加1。小數點後一位如果小於5,那直接去整數部分 math.roub...
Android 十大除錯方法
2011 22 19 1 dump虛擬記憶體 cat proc x maps 虛擬記憶體的位置可能有如下地方 核心的defconfig檔案 build core prelink linux arm.map build tools apriori prelinkmap.c bionic linker ...
js十大排序演算法 下
快速排序即找一基準,小於的放在左陣列,大於的放在右陣列,並連線,進行遞迴。function quicksort arr var num math.floor arr.length 2 找到中間數的索引值,如果是浮點數,則向下取整 var newvalue arr.splice num,1 找到中間數...