トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     計算誤差
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cuddle
Åê¹ÆNo.47920
投稿日時: 2011-8-24 19:20
新米
居住地:
投稿: 7
使用環境:
mac os-x 10.6
flash CS5.5
計算誤差
いつもありがとうございます。
一点ご質問させてください。AS3で上記のスクリプトを
実行すると3回目だけ小数点がつきまくります。

var t=0.1;
var v=0;
for(var i=0;i<5;i++){
v+=t;
trace(i+"回目="+v);
}

結果--------------------------
0回目=0.1
1回目=0.2
2回目=0.30000000000000004
3回目=0.4
4回目=0.5

今度は逆ですが、こっちは厄介です。

var t=0.1;
var v=0.5;
for(var i=0;i<5;i++){
v-=t;
trace(i+"回目="+v);
}


結果--------------------------
0回目=0.4
1回目=0.30000000000000004
2回目=0.20000000000000004
3回目=0.10000000000000003
4回目=2.7755575615628914e-17


いったい、これはなんで起きるんでしょうか。
バグなのか正しい動作なのか。
CS4とCS5.5両方同じでした。
既出でしたらすみません。
cuddle
Åê¹ÆNo.47921
投稿日時: 2011-8-24 20:24
新米
居住地:
投稿: 7
使用環境:
mac os-x 10.6
flash CS5.5
Re: 計算誤差
自己解決(?)です。

検索したら下記のようなページを見つけました。
バグのようで仕様なんですね。。。
http://blog.flair4.jp/2009/07/post-8.html
有り難うございました。
野中文雄
Åê¹ÆNo.47922
投稿日時: 2011-8-25 0:19
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 計算誤差
一般に「丸め誤差」と呼ばれます。なお念のため、「e」が含まれた数値は「指数表記」(*リンクはPDF)です。


----------------
 

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops