ES6-數字操作,判斷是否是整數,判斷最大值最小值


  • S中只有一種類型數,即64位(1bit 的符號位,11bits 的指數部分 ,以及52bits 的小數部分)雙精度浮點數,當整數數值過大時,就會發生精度丟失。
  • 所謂安全整數即能夠唯一確定的數字,即能夠使用64位二進制數唯一確定的整數。考慮253,轉換成對應表示方式后其小數部分總共包括53位,發生了精度丟失,所以在JS中無法區別253與2^53+1;
  • 安全整數與JS是否能夠正確進行運算關系密切,當運算數與運算結果都處於安全整數的范圍內時,才能保證JS運算結果正確。

ES6之數字操作

// 聲明一個二進制 (Binary)
let binary = 0B010101;
document.write(binary) //21

// 聲明八進制 Octal
let octal = 0o666;
document.write(octal)  //438

let a = 11/4;
//es6數字的判斷都放在了Number中
// isFinite() 函數用來判斷被傳入的參數值是否為一個有限數值(finite number)
// 整數浮點型都為true
console.log(Number.isFinite(a)); //true 
console.log(Number.isFinite('ananiah')); //false
console.log(Number.isFinite(NaN)); //false
console.log(Number.isFinite(undefined)); //false

//NaN
console.log(Number.isFinite(1))

// 判斷是否是整數 isInteger
let anania = 123.1;
console.log(Number.isInteger(anania)) //false  
console.log(Number.parseInt(anania)) //123  
console.log(Number.parseFloat(anania)) //123.1

//2 的53次方是最大值 最大值減一為計算機安全值
let ananiah = Math.pow(2,53)-1;
//最小值
let minananiah = -Math.pow(2,53)-1;
console.log(ananiah) //9007199254740991
console.log(minananiah) //-9007199254740992
console.log(Number.MAX_SAFE_INTEGER)  //9007199254740991 最大值
console.log(Number.MIN_SAFE_INTEGER) //-9007199254740991 最小值
console.log(Number.isSafeInteger(ananiah)) // true 判斷是否是安全整數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM