看板 Flash 關於我們 聯絡資訊
我先在舞臺上設三個按鈕分別是 數字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
cjcat2266:Math.pow(0.1, 3)你得到什麼值? 04/23 13:49
cjcat2266:小數第二位就錯的意思是? 04/23 13:49
op907:Math.pow(0.1,3)=0.0010000000000000002 04/23 13:53
op907:會變成122.1199999999大概是這樣 而我小數點第二位是輸入2 04/23 13:56
cjcat2266:恩,浮點數運算並不是100%準確的,小誤差是很正常的 04/23 13:58
cjcat2266:這種時候可以自己做一些四捨五入到小數第十位之類的處理 04/23 13:58
op907:不能按下什麼就是什麼嗎 04/23 14:00
op907:我寫的這個程式應該是錯了 很奇怪 04/23 14:03
pm2001:如果你是要寫計算機的話,做加減乘除前都當成字串來運算 04/23 14:06
Angelliya:推樓上:) 04/23 14:39
Allensph:先用字串相加 要運算時再轉數字 04/23 15:10
op907:請問字串怎麼相加 04/23 15:47
cjcat2266:所謂相加就是 "1" + "2" + "." + "1" == "12.1" 04/23 16:26
cjcat2266: *字串的 04/23 16:26