Re: [問題] 想請問flash高手...這程式哪裡出問題?

看板Flash作者 (喵)時間19年前 (2006/11/20 12:12), 編輯推噓4(4013)
留言17則, 3人參與, 最新討論串8/8 (看更多)
※ 引述《etrexetrex (ETREX)》之銘言: : 這是浮點數儲存時會造成的問題 : 因為浮點數用二進位表示法去逼近十進位的值 : 例如0.5 = 1/2 可以用2進位完全的表示 : 但 0.4 = 0.25 + 0.125 + 0.015625 + ..... : 二進位是無法表示0.4的 : 但是可以逼近到 0.3999999 : 因此若將實驗改為 : 隨機取出兩個數字後 : 將其中一個除以16另外一個除以128 : 然後再將兩個都乘以128 : 接著判斷這兩個數字和她們四捨五入到整數位的數字是否相等 : 應該就不會出現數字失真的問題 喔 我的天啊 原來如此?! 我昨天也想到 可能是顯示出來是112 可是實際上是111.999999999999999999999999999999.... 所以四捨五入後變成112(flash在trace的時候好像會到某個位數就四捨五入) 但是實際上他還是差了112一點點 可是我卻沒辦法證實我的想法 也不知道為什麼會出現這樣的問題 經過您這麼一解釋 我就比較清楚為什麼會有問題了 上網查了一下 好像連c語言都是用類似的方式去紀錄 那是不是都會有失真的問題呢?? 又 可以怎麼去克服呢? (ps 我的程式已經用別種方式克服 可是我覺得還是有一點遺憾 可參考如下 http://pub.mlc.edu.tw/files/002679/learn/simple.swf 很簡陋 但是有達到一些我的目的了) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.19.207.209

11/20 19:22, , 1F
另外寫函數作分數運算?分母分子分開存 顯示時才用浮點
11/20 19:22, 1F

11/20 19:43, , 2F
是的 您真內行 我把所有的類型都變成分數
11/20 19:43, 2F

11/20 19:43, , 3F
每個題目都有分子、分母和整數部份(帶分數)
11/20 19:43, 3F

11/20 19:44, , 4F
但當題目類型是整數時 就只顯示分子(此時分母等於1)
11/20 19:44, 4F

11/20 19:44, , 5F
小數時就隨機產生分母是10或100 分子就是一個整數
11/20 19:44, 5F

11/20 19:45, , 6F
列出在螢幕上的時候才顯示出分子除以10或100的狀況
11/20 19:45, 6F

11/20 19:45, , 7F
至於真分數假分數就是隨機跑分子、分母 做些小判斷
11/20 19:45, 7F

11/20 19:45, , 8F
帶分數就是先產生一個假分數 然後計算使之變成帶分數
11/20 19:45, 8F

11/20 19:47, , 9F
雖然不曉得學生在進行練習的時候有沒幫助
11/20 19:47, 9F

11/20 19:47, , 10F
但應該會為老師節省很多工作(至少可以拿來出題)
11/20 19:47, 10F

11/20 19:48, , 11F
但該題會判斷為錯答 用以解決學生真的解不出來正解時
11/20 19:48, 11F

11/20 19:48, , 12F
可以讓他知道答案 但又不會造成答對率的誤判
11/20 19:48, 12F

11/20 19:49, , 13F
怎麼會少了一行 (拿來出題)之後有下列這句
11/20 19:49, 13F

11/20 19:50, , 14F
螢幕上按"上上下下左左右又"可以直接出現答案
11/20 19:50, 14F

11/20 20:32, , 15F
超有趣的密技 XD C#裡有變數型態:十進位數 好像不失真
11/20 20:32, 15F

11/20 21:36, , 16F
AS3.0好像也有int可以用
11/20 21:36, 16F

11/20 21:36, , 17F
不過不確定是不是能不失真 :)
11/20 21:36, 17F
文章代碼(AID): #15OIiGhi (Flash)
討論串 (同標題文章)
文章代碼(AID): #15OIiGhi (Flash)