Javascript 是一門經常被用于編寫網頁交互效果的語言,通常可以直接在 HTML 的文本里插入小段代碼。其中,小數位是 Javascript 中非常需要注意的細節。
在 Javascript 中,小數位的精度是 16 個十進位的數碼。如果你需要更高的精度,可以使用 Javascript 的 Big Number 框架來達到更高的精度。
// 一個普通的計算,結果應該是 0.3,但卻返回了 0.30000000000000004 console.log(0.1 + 0.2);
因為 Javascript 的小數位精度問題,我們在判斷小數位時要特別小心。下面的兩個例子都是常犯的錯誤:
// 正確的判斷方式應該是比較兩個小數位之間的相差值是否很小,例如 0.0001 if (0.1 + 0.2 === 0.3) { console.log('正確'); } // 錯誤!因為小數位精度問題,這個判斷一定不會成立 if (0.1 + 0.2 == 0.3) { console.log('錯誤'); }
當需要進行四舍五入運算時,我們可以使用 toFixed() 方法。例如:
let number = 3.14159; console.log(number.toFixed(2)); // 輸出:3.14
需要注意的是,toFixed() 方法返回的結果是字符串類型。如果需要進行數值計算,則需要先進行類型轉換,例如:
let number = 3.14159; let newNumber = Number(number.toFixed(2)); console.log(newNumber); // 輸出:3.14
除了 toFixed() 方法外,還有一些其他的數值處理方法,例如:
- Math.round():四舍五入為最接近的整數
- Math.floor():返回小于等于原數的最大整數
- Math.ceil():返回大于等于原數的最小整數
綜上所述,Javascript 中的小數位精度問題需要我們特別小心。通過使用 toFixed() 方法和其他數值處理方法,我們可以更好地處理小數位問題。