Math.pow(2,53) //即9007199254740996
"9007199254740996".length //16
9007199254740993 // 9007199254740992
備注:
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比馬邊彝族網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式馬邊彝族網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋馬邊彝族地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
1. 2的53次方,并不是按數(shù)值長度設(shè)置的,
2. 總數(shù)量級為百萬億
3. 超出會顯示,但是不正常(表現(xiàn)為max+1=max;輸入16~21之間位數(shù)的9會直接往上+1等;)所以不能用于正常計算
4.21位會顯示1e+21
安全值判斷(ES6)Number.isSafeInteger(num):
Number.isSafeInteger(9007199254740993) // false (存在一個邊界問題)
Number.isSafeInteger(990) // true
Number.isSafeInteger(9007199254740993 - 990) // true
9007199254740993 - 990
// 返回結(jié)果 9007199254740002
// 正確答案應(yīng)該是 9007199254740003
9007199254700.3333 //9007199254700.334
"9007199254700.334".length //17(包含小數(shù)點)
.000001 //0.000001
.0000001 //1e-7
1.0000001 //1.0000001
9.0071992547409919 //9.007199254740993
備注:
1. 并不是兩邊都是2的53次方而是合在一起
2. 一起共16位,超出向上取整,
3. 如果小數(shù)位數(shù)超出,不一定是截斷還是向上進,如上
3. 0.000001會顯示1e-7,但前面帶個整數(shù)就不會了
以上僅表示一些測試現(xiàn)象,留做注意和參考
JS里面盡管能夠正確表示的數(shù)值量在2^53,但是位運算能夠正常運算的范圍卻依然是32位,第一位為符號位,所以是2^31,轉(zhuǎn)成10位的邊界值是(2147483648)。
~~2147483647
2147483647
~~2147483648
-2147483648
~~2147483649
-2147483647
~~2147483650
-2147483646
備注:
1. JS的位移運算符有:(|,&,<<,>>,~,^) ,要特別注意使用時候的位數(shù)限制
2. 如上的按位取反運算可以看出,超出部分會變成負數(shù)往后減
一般處理方式都是轉(zhuǎn)整以后運算,再除以100,例如:
const priceMultiply=(a,b)=>(a*b*100+.5|0)/100; //乘法
priceMultiply(18.12,10) //181.2 //后面不帶0的數(shù)字
(18.12*10).toFixed(2) //181.20 //后面帶0的字符串
web前端開發(fā)學習Q-q-u-n:⑦⑧④-⑦⑧③-零①② ,分享學習的方法和需要注意的小細節(jié),不停更新最新的教程和學習方法
(從零基礎(chǔ)開始到前端項目實戰(zhàn)教程,學習工具,職業(yè)規(guī)劃)
備注:這里要注意toFixed()函數(shù)的語法:
NumberObject.toFixed(num)
所以寫之前需要保證toFixed的對象是數(shù)字,否則會報錯
//報錯情況:
(null).toFixed(2)
(undefined).toFixed(2)
("222.333").toFixed(2)
//特殊:NaN是數(shù)字,但是無法取小數(shù),也并不會報錯
(NaN).toFixed(2) //"NaN"
當前標題:web前端入門到實戰(zhàn):JS浮點數(shù)值問題
鏈接地址:http://www.rwnh.cn/article26/pcoscg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、小程序開發(fā)、關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣、Google、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)