Re: [討論] 14.52-14.49 = 0.0299999??

看板Android (安卓)作者 (Free&Easy...￾N ￾N )時間13年前 (2011/03/19 03:43), 編輯推噓6(606)
留言12則, 8人參與, 最新討論串1/1
※ 引述《newline (漫長的等待與相遇)》之銘言: : 聽說有的手機算出來是0.29999 : 測試一下你的手機吧 : 聽說MOTO HTC 部份手機會這樣 睡不著寫個Android程式驗證是否是變數資料型態的問題 以14.52 - 14.49當作例子 1. 變數宣告為浮點數 (float) 14.52 - 14.49 = 0.030000687 http://img339.imageshack.us/i/floatv.png/ 2. 變數宣告為倍精度浮點數 (double) 14.52 - 14.49 = 0.02999999999999936 http://img15.imageshack.us/i/doublev.png/ 3. 變數宣告為整數 (int) 14.52 - 14.49 = 0 http://img843.imageshack.us/i/intd.png/ 所以...Google做的計算機,資料型態應該是宣告成double才會造成這個問題XD 無聊的可以下載這個apk去玩玩看...(按menu有設定可以選擇float、double及int) http://www.multiupload.com/B9YZOL2FR7 我覺得Google根本是懶得理這個問題,多設幾個條件式就可以避免這問題了吧QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.8.93

03/19 04:09, , 1F
糟了 我code都用double XD
03/19 04:09, 1F

03/19 04:38, , 2F
水喔...
03/19 04:38, 2F

03/19 04:57, , 3F
或許是對資料型態有更大的限制?
03/19 04:57, 3F

03/19 08:10, , 4F
浮點數會有問題的話可以找的到無限組有問題..
03/19 08:10, 4F

03/19 08:11, , 5F
所以設修件式頂多過濾掉一些而已..
03/19 08:11, 5F

03/19 08:14, , 6F
03/19 08:14, 6F

03/19 09:19, , 7F
貼一個 C_and_CPP 的萬年置底連結
03/19 09:19, 7F

03/19 17:38, , 9F
推樓上那篇
03/19 17:38, 9F

03/20 03:28, , 10F
要避開這個要用十進位浮點數吧,是說根本沒必要就是了w
03/20 03:28, 10F

03/21 01:26, , 11F
這種東西就某種方面來說是BUG 但就另一方面來說他是正常的
03/21 01:26, 11F

03/21 01:26, , 12F
根本沒什麼好爭的 因為沒有誰對誰錯
03/21 01:26, 12F
文章代碼(AID): #1DWxNHKO (Android)
文章代碼(AID): #1DWxNHKO (Android)