看板 Android 關於我們 聯絡資訊
※ 引述《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
wayne0411:糟了 我code都用double XD 03/19 04:09
awesomemaxe:水喔... 03/19 04:38
Illus:或許是對資料型態有更大的限制? 03/19 04:57
vincentin:浮點數會有問題的話可以找的到無限組有問題.. 03/19 08:10
vincentin:所以設修件式頂多過濾掉一些而已.. 03/19 08:11
vincentin: 條 03/19 08:14
LPH66:貼一個 C_and_CPP 的萬年置底連結 03/19 09:19
ming1053:推樓上那篇 03/19 17:38
albb0920:要避開這個要用十進位浮點數吧,是說根本沒必要就是了w 03/20 03:28
CloudJB:這種東西就某種方面來說是BUG 但就另一方面來說他是正常的 03/21 01:26
CloudJB:根本沒什麼好爭的 因為沒有誰對誰錯 03/21 01:26