1 、tofixed方法
toFixed() 方法可把 Number 四舍五入為指定小數位數的數字。例如將數據Num保留2位小數,則表示為:toFixed(Num);但是其四舍五入的規則與數學中的規則不同,使用的是銀行家舍入規則,銀行家舍入:所謂銀行家舍入法,其實質是一種四舍六入五取偶(又稱四舍六入五留雙)法。具體規則如下:
簡單來說就是:四舍六入五考慮,五后非零就進一,五后為零看奇偶,五前為偶應舍去,五前為奇要進一。通過谷歌測試:前兩句是對的,四舍六入五考慮,五后非零就進一,五后為零的情況和前面的數字有關,但不僅僅是奇偶的關系;而且五后為零后面還有非零也進一,總之在計算的時候可能這就不是我們想要的了,不符合數學規律;
先走一波測試(谷歌):
12.050.toFixed(1) "12.1" 12.150.toFixed(1) "12.2" 12.250.toFixed(1) "12.3" 12.350.toFixed(1)//////// "12.3" 12.450.toFixed(1)//////// "12.4" 12.550.toFixed(1) "12.6" 12.650.toFixed(1) "12.7" 12.750.toFixed(1) "12.8" 12.850.toFixed(1)///////// "12.8" 12.950.toFixed(1)///////// "12.9"
12.9501.toFixed(1)
2 、Math.round()方法
例如:對於X進行保留兩位小數的處理,則可以使用Math.round(X * 100) / 100.進行處理
function mathfloat(num, n) { n = n ? parseInt(n) : 0; if(n <= 0) { return Math.round(num); } num = Math.round(num * Math.pow(10, n)) / Math.pow(10, n); //四舍五入 num = Number(num).toFixed(n); //補足位數 return num; };