一、toFixed()方法
JavaScript中toFixed()方法可以將數字保留指定位數的小數,該方法的參數為要保留的小數位數,返回的是字符串類型。例如:
let num = 3.1415926; num = num.toFixed(2); console.log(num); //"3.14"
需要注意的是,如果保留位數小於原數字的小數位數,會進行四捨五入;如果保留位數大於原數字的小數位數,會在後面補0。例如:
let num = 3.12; num = num.toFixed(5); console.log(num); //"3.12000"
另外,toFixed()方法也可以解決JavaScript精度問題,因為數字在JavaScript中採用64位雙精度浮點數來表示,所以在進行小數運算時可能會出現精度誤差。使用toFixed()方法可以解決這個問題。例如:
let num1 = 0.1; let num2 = 0.2; let result = num1 + num2; console.log(result); //0.30000000000000004 result = result.toFixed(2); console.log(result); //"0.30"
二、Math.round()方法
Math.round()是JavaScript中的一個內置方法,可以將數字四捨五入為最接近的整數。可以通過將數值乘以相應的倍數,再除以相同的倍數來保留小數點後指定位數。例如:
let num = 3.1415926; num = Math.round(num * 100) / 100; console.log(num); //"3.14"
需要注意的是,如果保留位數大於原數字的小數位數,會在後面補0。如果要保留的位數為0,可以直接使用Math.round()方法。例如:
let num = 3.14; num = Math.round(num); console.log(num); //3
三、parseFloat()方法
parseFloat()是JavaScript中的一個內置方法,可以將字符串解析為浮點數。可以通過toFixed()來保留小數點後指定位數。例如:
let num = parseFloat("3.1415926"); num = num.toFixed(2); console.log(num); //"3.14"
需要注意的是,如果解析的字符串不是一個有效的浮點數,會返回NaN。例如:
let num = parseFloat("hello"); console.log(num); //NaN
四、正則表達式
還可以使用正則表達式來保留小數點後指定位數。例如:
let num = 3.1415926; num = num.toString(); if (num.indexOf(".") !== -1) { num = num.substring(0, num.indexOf(".") + 3); } console.log(num); //"3.14"
首先將數字轉換成字符串,然後查找小數點的位置,截取小數點前面和兩位小數點後面的字符串即可。
五、toLocaleString()方法
toLocaleString()方法可以將數字轉換為字符串,並根據指定的區域設置,格式化為對應的本地數字。可以通過設置數字的小數位數和使用toFixed()方法來保留小數點後指定位數。例如:
let num = 3.1415926; num = num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2}); console.log(num); //"3.14"
需要注意的是,toLocaleString()方法的第一個參數為區域設置,可以傳入undefined或具體的語言代碼(如”en-US”)。第二個參數為一個選項對象,可以設置數字的小數位數和千位分隔符等內容。
六、總結
以上就是JavaScript保留小數點後兩位的方法。可以根據需要選擇不同的方法。但需要注意的是,在計算時可能會出現精度誤差,應該盡量避免在小數點後面保留過長的位數。
原創文章,作者:TEMS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/148391.html