一、toFixed()方法
JS中有一個toFixed()方法可以對數字進行小數保留。該方法的用法如下:
let num = 3.14159265; num.toFixed(2); // 返回"3.14"
使用toFixed()方法時,需要注意的是,該方法會將數字四捨五入到指定的小數位數,並將其轉換為字符串返回。如果小數位數不足,會在末尾補0。
二、Math.round()方法
Math.round()方法是JS中用於四舍五入的方法,也可以用於小數位數保留。其用法如下:
let num = 3.14159265; Math.round(num * 100) / 100; // 返回3.14
使用Math.round()方法時,需要先將要保留的小數位數乘以10的對應次冪,然後將該數值作為參數傳入round()方法中。最後將結果除以10的對應次冪即可得到保留小數位數的數字。
三、自定義函數
我們可以編寫自定義函數來實現保留小數位數的功能。例如:
function toFixed(number, precision) { let multiplier = Math.pow(10, precision); return Math.round(number * multiplier) / multiplier; } let num = 3.14159265; toFixed(num, 2); // 返回3.14
該方法將要保留的小數位數作為參數傳入,使用Math.pow()方法獲取10的對應次冪,並將其作為乘數。然後將數值乘以該乘數並進行四捨五入,最後將結果除以該乘數即可得到保留小數位數的數字。
四、使用parseFloat()方法
JS中的parseFloat()方法可以將字符串轉換為數字,並且會保留小數位數。其用法如下:
let num = "3.14159265"; parseFloat(num).toFixed(2); // 返回"3.14"
該方法將字符串轉換為數字後,再使用toFixed()方法進行小數位數保留。但需要注意的是,如果傳入的字符串中包含非數字字符,則會返回NaN。
五、使用正則表達式
我們可以使用正則表達式來截取小數位數,然後將其進行四捨五入。例如:
function toFixed(number, precision) { let regExp = new RegExp(`^-?\\d+(?:\\.\\d{0,${precision}})?`); let match = number.toString().match(regExp); return Number(match[0]); } let num = 3.14159265; toFixed(num, 2); // 返回3.14
該方法通過正則表達式將數字字符串截取至指定小數位數,並將其轉換為數字。使用match()方法獲取匹配結果,然後取出第一個匹配結果即可得到保留小數位數的數字。
六、小結
JS中保留小數位數是常見需求,我們可以使用toFixed()方法、Math.round()方法、自定義函數、parseFloat()方法或正則表達式來實現該功能。在使用時需要考慮到四捨五入、小數位數不足或過多等情況。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185586.html