parseInt(0.0000006)居然等于6
- parseInt函式的作用
- 探究原因
- 總結原因
- 改正
探討背景:不知道小伙伴們有沒有發現,如果是parseInt(0.006)或者parseInt(0.0006)等回傳的值都應該 0,但是parseInt(0.0000006)回傳的值卻詭異的 6,這到底為什么呢?
parseInt函式的作用
首先先說一下,parseInt()的作用是什么?他是js原生的方法,是用來把數字字串轉化為Number型別的數字的,還有他只是轉化整數部分,
探究原因
發現我們理想的是把這個小數都變成0,但是parseInt(0.0000006)卻回傳6,真是離譜呀,
console.log(parseInt(0.006)) //0
console.log(parseInt(0.0006)) //0
console.log(parseInt(0.00006)) //0
console.log(parseInt(0.000006)) //0
console.log(parseInt(0.0000006)) //6
回傳我就開始探索他的原因,是哪里出現了問題,
parseInt(0.0000006) //0.000006
String(0.0000006); //6e-7
parseInt(6e-7); //6
parseInt(0.0000006) //6
總結原因
這下我發現原因了,原來是因為在10的-6次方之后,形式就換成了復數的形式(6e-7),然后用parseInt()把6e-7的6,進行了回傳,所以最后回傳的值是6,
改正
如果要把小數安全的回傳回來,就要用別的方法啦!
Math.floor(0.00006); //0
Math.floor(0.000006); //0
Math.floor(0.0000006); //0
這樣就可以得到你想要的值了,我會不定時的發一些,我學習中遇到的坑還有一些小知識點的,如果喜歡的話,記得關注我一下!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/280318.html
標籤:其他
上一篇:Linux 中的多執行緒
