在處理資料時,經常會遇到帶有小數點的數字,例如:
計算購物車折扣後,價格出現了小數點(例如:$199.8)。
製作隨機抽獎時,算出了一個隨機小數。
計算時間或頁碼時,需要把計算出來的浮點數(Floating-point number)轉成整數。
這時候,我們可以使用JavaScript 內建的工具——Math.floor()來做 「無條件捨去」。
Math.floor() 是 JavaScript 內建用來進行數學運算的方法。
不管小數點後面的數字是多少,這個數字都會無條件捨去,只保留不大於該數字的最大整數。
Math.floor(x)
x (必填):想要進行無條件捨去的數字(Number)。
回傳值:回傳不大於 x 的最大整數。
// 小數點後數字再大,都會被無條件捨去
console.log(Math.floor(4.1)); // 4
console.log(Math.floor(4.99)); // 4
// 如果傳入本身就是整數,會直接回傳原數字
console.log(Math.floor(5)); // 5
計算貓罐頭平分(無條件捨去)
const totalCans = 10; // 總共有 10 罐貓罐頭
const catCount = 3; // 家裡有 3 隻貓
// 10 / 3 = 3.3333...
// 為了確保每隻貓吃到一樣多且完整的罐頭,使用 Math.floor()
const cansPerCat = Math.floor(totalCans / catCount);
console.log(`每隻貓可以分到 ${cansPerCat} 罐罐頭`); // 3
Math.floor() 的定義是:「回傳小於或等於該數字的最大整數(無條件捨去)」。
因此不適合用於負數的場合,如果是要去掉負數的小數點,可以改用Math.trunc()。
| 方法 | 說明 |
|---|---|
| Math.floor() | 無條件捨去 |
| Math.ceil() | 無條件進位 |
| Math.round() | 四捨五入 |
| Math.trunc() | 直接砍掉小數點 |
(參考資料:Mdn - Math.floor())