カテゴリー
未分類

誤差

PC上での計算は乗算の方が除算よりも的だというのは、なんとなく知っていて、
200/100
より
200*0.01
の方が良かろうと思っていたのですが、
ちと試していると(Loading系)

みたいな事をやっていたのですけど、これでやってると

ってなかんじで誤差が出てしまう。


で、

でやると

ってな具合にすっきり。
あんまり乗算に置き換えない方が良いですかね?
違うなのかいな?
追記:2008/01/07 16:53
ちとこの問題がAS3固有のものなのか?(AS2ではこのような現は見たことがないので)を検証。

これをAS3ですると、

のような誤差が発生する。
で、これをAS2で実行すると誤差が発生することはない。(100*10回ぐらいしか試してないですが)
はて・・。
で、100で除算した場合はどちらも問題なく誤差は発生しませんでした。
どうもAS3において、Number同士の演算にはなにかしら誤差が発生するのかも知れません・・・。
ちなみに
0,01を
0.01000000000000000000000000000000000000000000000000
しても駄目でした。
ついでに
1E-2;
でも駄目でした。

「誤差」への2件の返信

0.01を掛けると、最初から浮動小数点演算で、100で割ると、途中までは整数で扱われるからたまたま誤差が0になったように見えただけ、とか・・・・
いずれにしても小数を扱う時には誤差が発生する事を覚えておかないとダメなんですね・・・

どうもこの問題はAS3になってからの問題のようです。
ちょっと調べてみたので後で追記しておきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です