日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

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

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