[問題] 用按鈕輸出數字

看板Flash作者 (op)時間16年前 (2009/04/23 13:45), 編輯推噓6(608)
留言14則, 5人參與, 最新討論串1/1
我先在舞臺上設三個按鈕分別是 數字1 數字2 小數點 我想用滑鼠按下數字1按鈕後動態欄位出現 1 再按下2後 則出現 12 再按下2後 則出現 122 再按下小數點再按下1 則出現122.1 再按下2 則出現122.12 這是我的寫法 var a:Number; var s:Number=0; var d:Number=0; var t:Number=0; var n:Number=1; function one(e:MouseEvent):void{ d=1; if(t==0){ s=10*s+d; out_txt.text=String(s);} if(t==1){ a=d*Math.pow(0.1,n); n=n+1; s=s+a; out_txt.text=String(s);} } function two(e:MouseEvent):void{ d=2; if(t==0){ s=10*s+d; out_txt.text=String(s);} if(t==1){ a=d*Math.pow(0.1,n); n=n+1; s=s+a; out_txt.text=String(s);} } function point(e:MouseEvent):void{ t=1;} one_btn.addEventListener(MouseEvent.CLICK, one); two_btn.addEventListener(MouseEvent.CLICK, two); point_btn.addEventListener(MouseEvent.CLICK, point); 這個寫法到小數點第二位就錯了 請問要怎修改 或是有其他寫法 然後 Math.pow(0.1,3) 為什麼出來的值都怪怪的 整數都沒問題 像 Math.pow(10,3)就沒問題 我是用AS3寫的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.124.172

04/23 13:49, , 1F
Math.pow(0.1, 3)你得到什麼值?
04/23 13:49, 1F

04/23 13:49, , 2F
小數第二位就錯的意思是?
04/23 13:49, 2F

04/23 13:53, , 3F
Math.pow(0.1,3)=0.0010000000000000002
04/23 13:53, 3F

04/23 13:56, , 4F
會變成122.1199999999大概是這樣 而我小數點第二位是輸入2
04/23 13:56, 4F

04/23 13:58, , 5F
恩,浮點數運算並不是100%準確的,小誤差是很正常的
04/23 13:58, 5F

04/23 13:58, , 6F
這種時候可以自己做一些四捨五入到小數第十位之類的處理
04/23 13:58, 6F

04/23 14:00, , 7F
不能按下什麼就是什麼嗎
04/23 14:00, 7F

04/23 14:03, , 8F
我寫的這個程式應該是錯了 很奇怪
04/23 14:03, 8F

04/23 14:06, , 9F
如果你是要寫計算機的話,做加減乘除前都當成字串來運算
04/23 14:06, 9F

04/23 14:39, , 10F
推樓上:)
04/23 14:39, 10F

04/23 15:10, , 11F
先用字串相加 要運算時再轉數字
04/23 15:10, 11F

04/23 15:47, , 12F
請問字串怎麼相加
04/23 15:47, 12F

04/23 16:26, , 13F
所謂相加就是 "1" + "2" + "." + "1" == "12.1"
04/23 16:26, 13F

04/23 16:26, , 14F
*字串的
04/23 16:26, 14F
文章代碼(AID): #19y0256I (Flash)