AS3中的數字運算問題

2021-05-06 17:42:18 字數 577 閱讀 8896

乙個看似簡單的問題,但是在實際工作的時候卻讓人很鬱悶。

用as3做乙個很簡單的運算,

**如下:

trace(82.125 * 17.43)

//輸出1431.43875

var key:number =82.125 * 17.43 + 616;

trace(key);

//輸出2047.43875                                        ---a

trace(key + 1)

//輸出2048.4387500000003                        ---b

對比a與b 發現,a只是再加1 就出現b的結果,這是為什麼呢?

查閱了很多資料,唯一覺得 有些道理的就是 「不要讓數值差距過大的浮點數相加減,結過可能有偏差」.

但是這句話也沒有給出為什麼會結果有偏差。

難道as3在處理這個看似簡單的數字運算都不行嗎?一直沒有找到原因。

期待找到新的答案。或者找到新的解決方法,就是 2047.43875 + 1 = 2048.43875 而不是 2048.4387500000003  

as3中的移位運算

在as3中,很少時候能看到 中含有移位操作,可能大多數人最常見的移位操作,也就是用來提取顏色通道的那幾行 var color uint 0x0ff0f0f0 var a uint color 0xff000000 24 var red uint color 0x00ff0000 16 var gre...

as3中的容器

4種容器 array object vector dictionary 各自特點 array是索引陣列,雖然它也是動態類,可以等同於object來用,但是不建議這樣,因為沒有任何好處。除了鍵上的區別外,array還是善於隨機訪問的,但不知道object和dictionary和它在訪問速度上的區別有多...

再學AS3(二) 乘法運算

知識點 1 想執行一些方法,然後返回結果給呼叫它的函式,可以使用return 語句返回結果,return 返回的資料型別必須與函式申明的返回型別相一致。2 如果第乙個數字輸入的是0或輸入了四個數字,則游標跳轉到第二個輸入文字框中,stage.focus 3 如果第乙個數字輸入的是0或輸入了四個數字,...