[請益] 運算加減異常問題

看板PHP作者 (shen)時間8年前 (2017/06/26 22:53), 編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
從資料庫取出欄位型態為DOUBLE的數值如下 211.95 -60 -30 -46 -16 -24 -19.95 -16 經過迴圈取值echo後顯示會是下面結果... 累加結果__迴圈取值 211.95__211.95 151.95__-60 121.95__-30 75.95__-46 59.95__-16 35.95__-24 16__-19.95 //到目前都很正常 -1.06581410364E-14__-16 //到這段16-16卻是異常數字,無解,懇求大大們錦囊相授 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.44.176 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1498488807.A.49C.html

06/27 01:19, , 1F
06/27 01:19, 1F

06/28 09:33, , 2F
因為2進位無法準確表示10進位的浮點數就會造成這個問題
06/28 09:33, 2F

06/28 09:34, , 3F
各個平台都有自己對應的方式處理(也有些乾脆不處理)
06/28 09:34, 3F

06/28 09:35, , 4F
http://0.30000000000000004.com/ 看一下哪個平台會踩雷
06/28 09:35, 4F

06/28 09:36, , 5F
最根本的方法還是,不要用浮點數存
06/28 09:36, 5F
文章代碼(AID): #1PKH_dIS (PHP)
文章代碼(AID): #1PKH_dIS (PHP)