JS十大取整方法解說

2021-10-11 05:23:33 字數 1935 閱讀 4701

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 找到中間數...