在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 【JS】關(guān)于toFixed與銀行家舍入法

【JS】關(guān)于toFixed與銀行家舍入法

了解到JavaScript的toFixed方法的四舍五入規(guī)則是 銀行家舍入法

即:

四舍六入五考慮,五后非零就進一,五后為零看奇偶,五前為偶應(yīng)舍去,五前為奇要進一
11.556 = 11.56 ------六入
11.554 = 11.55 -----四舍
11.5551 = 11.56 -----五后有數(shù)進位
11.545 = 11.54 -----五后無數(shù),若前位為偶數(shù)應(yīng)舍去
11.555 = 11.56 -----五后無數(shù),若前位為奇數(shù)應(yīng)進位

所以在我理解看來 (0.45).toFixed(1) 的結(jié)果應(yīng)該是0.4,即 五后無數(shù),若前位為偶數(shù)應(yīng)舍去

然鵝

clipboard.png

(0.075).toFixed(2)
"0.07"
(0.085).toFixed(2)
"0.09"
(0.045).toFixed(2)
"0.04"

有人知情嗎?求教

(額,這個問題可能有點孔乙己了-_-||)

回答
編輯回答
挽青絲

……不知道是打哪看來的,有的話建議標(biāo)明下出處,避免其他人再次入坑。

我覺得MDN的toFixed中文詞條頁這里就翻譯的挺好:

toFixed() 方法使用定點表示法來格式化一個數(shù)。

因為這個“Fixed”就是“fixed-point”的意思,所以,這就是個二進制浮點數(shù)轉(zhuǎn)換定點數(shù)時精度丟失的問題,你看到的進位,實際上是浮點數(shù)在二進制-十進制轉(zhuǎn)換中的一種必然損耗,網(wǎng)上有個在線數(shù)制轉(zhuǎn)換,你可以去試試(當(dāng)然我更推薦你了解下整數(shù)、定點數(shù)和浮點數(shù),以及它們之間的數(shù)制轉(zhuǎn)換,手寫一遍就明白了)。


補充一篇文章供參考:

為什么(2.55).toFixed(1)等于2.5?

2018年3月7日 00:07
編輯回答
擱淺

經(jīng) 蒲柳隱逸 提點,懷疑是浮點數(shù)丟失問題

做了如下的實驗:

(0.45).toFixed(20)
"0.45000000000000001110"
2017年8月31日 10:19