現實開發當中,我們總是會遇到
金額計算
問題,我們本以為js中0.1+0.2=0.3,結果0.300000000000000004,所以我們顯示金額數值的時候,經常會不准,測試經常會提這樣有多個小數點的bug,遇到這樣的問題我們該怎麼辦?
解決辦法:
把小數先裝成整數計算。比如(0.1*100+0.2*100)/100 = 0.3 ,正確 ✔。
原因:為什麼0.1+0.2!=0.3?
這是因為計算機的計算原因就是先把數值轉成
二進位制,再進行計算,所以計算機無法把0.1轉成乙個有限位數的二進位制,而是轉成乙個跟0.1相近的二進位制,所以0.1和0.2求和(或者求積)會出現偏差。
總結:js當中只要涉及到小數點的計算,都必須先轉成整數進行計算。
python小數點 python 小數點問題
我想生成一組小數,大小為從0到1,間隔為0.2,即 0,0.2,0.4,0.6,0.8,1 1.while迴圈生成 a list i 0 while i 1 i 0.2 print a list 列印結果為 0,0.2,0.4,0.6000000000000001,0.8,1.0 奇怪,為什麼會有0...
討厭的小數點
小明一直很討厭小數點,一看到小數點就頭疼。不幸的是,小紅給他出了乙個題目,問他 給你乙個小數x,你能算出小數點後第n位是什麼嗎?1 n 6 小明看到此題後,瞬間頭疼暈倒,你能幫幫他嗎?首先輸入乙個t,表示有t組資料,跟著t行 每行輸入乙個小數 輸入資料保證一定是a.b的形式,為了簡單化問題,沒有迴圈...
討厭的小數點
題目描述 小明一直很討厭小數點,一看到小數點就頭疼。不幸的是,小紅給他出了乙個題目,問他 給你乙個小數x,你能算出小數點後第n位是什麼嗎?1 n 6 小明看到此題後,瞬間頭疼暈倒,你能幫幫他嗎?輸入首先輸入乙個t,表示有t組資料,跟著t行 每行輸入乙個小數 輸入資料保證一定是a.b的形式,為了簡單化...