2026年9月14日 星期一

控制 Number.toExponential() 輸出的精度

控制 Number.toExponential() 輸出的精度 

前言

  在上次的 關於 Number.toExponential() 介紹 Number.toExponential() , Number.toExponential() 還支援控制輸出精度的用法,在此把學習的過程做個紀錄。


內容

  範例如下

let num = 1234567;
console.log( num.toExponential(1) );//1.2e+6
console.log( num.toExponential(3) );//1.235e+6
//
console.log( 1.2 * ( 10 ** 6 ) );//1200000
console.log( 1.235 * ( 10 ** 6 ) );//1235000


控制精度的方法很簡單,只要輸入引數就可以,該引數正是要控制的位數,範例分別示範 1 與 3 ,在引數是 3 的時候注意到最後一位會被四捨五入。範例最後示範把兩個輸出的字串還原回數值。 


參考資料

[ developer.mozilla.org ] Number.prototype.toExponential()


相關文章與資料 

關於 Number.toExponential()

2026年9月7日 星期一

關於 Number.toExponential()

 關於 Number.toExponential()

前言

  JavaScript 提供一種用指數的表達數值的表示法,也就是透過 Number.toExponential() ,在此把學習的過程做個紀錄。


內容

  範例如下

let num = 1234;
console.log( num.toExponential() );//1.234e+3
console.log( typeof num.toExponential() );//string
console.log(  1.234 * (10 ** 3) );//1234


Number.toExponential() 用法就直接使用取還傳值即可,範例可以得到 1.234e+3 的結果,要注意這個結果並不是用 Number 來儲存,而是 String ,也許看到結果裡有一個"e"馬上就想到自然指數 e ,但其實跟自然指數 e 一點關係都沒有,結果的那個字串代表的意思可以在範例的最後看到,只是前方的數字乘上 10 的幾次方而已。


參考資料

[ developer.mozilla.org ] Number.prototype.toExponential()

2026年8月31日 星期一

關於 Number.toPrecision()

 關於 Number.toPrecision()

前言

  在之前的 修正 Number 的小數位數 修正 Number 的小數位數,還有另一個跟它功能相似的 Number.toPrecision() ,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( Math.PI.toPrecision(2) );//3.1
console.log( Math.PI.toPrecision(5) );//3.1416
//
let num = 1234;
console.log( num.toPrecision(2) );//1.2e+3


Number.toPrecision() 的用法跟 Number.toFixed() ,引數一樣是輸入要修正的位數,兩者的差別是對精度的為數計算不一樣, Number.toFixed()  只計算小數的位數,而 Number.toPrecision() 把整數與小數的部分都計算。範例第一例的結果 3.1 是因為只有兩位數,第二例的結果 3.1416 和Number.toFixed() 的理由一樣,小數的末位會四捨五入,最後,如果位數不足以顯示整數的時候會用指數的方式來表示。


參考資料

[ developer.mozilla.org ] Number.prototype.toPrecision()


相關文章與資料

修正 Number 的小數位數


2026年8月24日 星期一

修正 Number 的小數位數

 修正 Number 的小數位數

前言

  最近發現 JavaScript 有自帶可以修正小數位數的 Function ,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( Math.PI );//3.141592653589793
console.log( Math.PI.toFixed(2) );//3.14
console.log( Math.PI.toFixed(4) );//3.1416


使用 Number 自帶的 toFixed() 就可以修正小數的位數,引數是要修正的位數。範例使用 Math.PI ,透過修正 2 位數得到 3.14 ,在來修正 4 位數得到 3.1416,而不是 3.1415 ,因為會四捨五入,而且這個特性是改不掉的!這點一定要注意。


參考資料

[ developer.mozilla.org ] Number.prototype.toFixed()

2026年8月17日 星期一

關於 Number 的整數有效值

 關於 Number 的整數有效值

前言

  最近才知道原來 Number 在表達整數時會有有效值的範圍,超出去的時候是不會有任何警告的,不過有提供相關函數來檢查,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( Number.MAX_SAFE_INTEGER );//9007199254740991
console.log( Number.MAX_SAFE_INTEGER + 100);//9007199254741092
//
console.log( Number.isSafeInteger( Number.MAX_SAFE_INTEGER ) );//true
console.log( Number.isSafeInteger( Number.MAX_SAFE_INTEGER + 1) );//false
//
console.log( Number.MIN_SAFE_INTEGER );//-9007199254740991


Number 的最大有效值可以透過 Number.MAX_SAFE_INTEGER 來檢查,可以看到當範例對  Number.MAX_SAFE_INTEGER 加 100 後的結果是不正確的!也就是當超過有效值的範圍後勢不保證結果正確的!要確認是否為有效值可以透過 Number.isSafeInteger() 來確認。有 Number.MAX_SAFE_INTEGER  當然就有 Number.MIN_SAFE_INTEGER ,它其實就是 Number.MAX_SAFE_INTEGER 乘上負號。


參考資料

[ developer.mozilla.org ] Number.MAX_SAFE_INTEGER

2026年8月10日 星期一

關於 Math.Max() 與 Math.min()

 關於 Math.Max() 與 Math.min()

前言

  找出陣列的最大或最小值是很常見的需求,但如果直接從陣列找必須透過排序或用迴圈來完成,有簡短的方式完成嗎?答案是肯定的,那就是 Math.Max() 與 Math.min() ,在此把學習的過程做個紀錄。


內容

  範例如下

console.log( Math.min( 1 , 2 , 3 ) );//1
console.log( Math.max( 1 , 2 , 3 ) );//3
//
let ar = [ 1111 , 5555 , 9999 ];
console.log( Math.min( ...ar) );//1111
console.log( Math.max( ...ar) );//9999


Math.Max() 與 Math.min() 的使用方法很簡單,只要將所有的數值輸入到引數就好,Math.Max() 會回傳最大的數值, Math.min() 會回傳最最小的數值。Math.Max() 與 Math.min() 本身並不不支援直接輸入陣列來得到結果,所以如果要取得陣列的最大或最小要透過 ... 來陣列分解後輸入。


參考資料

[ developer.mozilla.org ] Math.min()

[ developer.mozilla.org ] Math.max()

2026年8月3日 星期一

關於 Math.trunc()

 關於 Math.trunc()

前言

  最近發現 Math.trunc() 可以直接處理掉小數的部分,而且不用管正負數都是直接保留整數,仔此把學習的過程做個紀錄。


內容

  範例如下

console.log( Math.trunc( 12.33 ) );//12
console.log( Math.trunc( -99 ) );//-99
console.log( Math.trunc( -12.33 ) );//-12


用起來跟 Math.floor() 、 Math.ceil() 與 Math.round() ,但她使用時不需考慮正負數,都是直接保留整數,用起來直覺且簡單。


參考資料

[ developer.mozilla.org ] Math.trunc()