日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

保留小数位toFixed()方法的怪异表现

發布時間:2023/12/31 50 生活家
生活随笔 收集整理的這篇文章主要介紹了 保留小数位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()方法的怪异表现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。