※ 引述《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
--
: 聽說有的手機算出來是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
--
All Comments