保留小数位toFixed()方法的怪异表现
生活随笔
收集整理的這篇文章主要介紹了
保留小数位toFixed()方法的怪异表现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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)
"13.0"
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;
};
總結
以上是生活随笔為你收集整理的保留小数位toFixed()方法的怪异表现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 命令手册_MySQL 常用命
- 下一篇: emq+mysql设置_EMQ--添加m