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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     浮動小数点の演算について
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fumio
Åê¹ÆNo.13614
投稿日時: 2004-12-23 21:45
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
Re: 浮動小数点の演算について
疑問とされている点が、よく理解できません。有効桁数が15桁で、「15桁は特に問題は見当た」らなければ、それで問題ないような気がします。

こういうことでしょうか? 仮に、有効桁数が1桁だとしましょう。
a = 0.141 + 0.142 + 0.143 + 0.144 + 0.145;

kumanekoさんは、有効桁数1桁のaの値として「0.5」を期待されるということですか?「0.7」(正確な計算結果は0.715)という値の方が、ふさわしくありませんか? つまり、「計算した結果の値」として、有効桁数までの数値が正確な数値の近似値として使えるということです。具体的には「0.7」と「0.715」は、ともに小数点以下第2位で四捨五入すれば、等しい値になります。

有効桁数15桁ということは、値をすべて16桁目で四捨五入して扱うということではなく、16桁目以降の値が誤差を含んでいることを意味するだけです。
引用:
kumanekoさんは書きました:
まず、16桁の方ですが、表示上は四捨五入で丸められて「1」と表示されますが、
NUM値「0.9999999999999991」?「0.9999999999999994」では判定が正しく行なわれていない。
四捨五入されているのであれば、「同じ値」として処理されるのが本来だと思います。
...[中略]...
15桁は特に問題は見当たりません。

結果的に、内部では16桁で、表示するときに15桁に丸めているってことなのでしょうか?
でも、Flashは公称で有効桁数が15桁なはずですよね...う?ん.....
こういう仕様なのでしょうか?
内部の値と表示の値が違ってしまっては正しい処理が出来ませんし。
これが仕様だとは思えないのですが...
如何なものでしょう?

正確には、コンピュータのビットの扱いを、知る必要があると思います。この点は私も詳しくありませんので、インターネットなどでお調べいただくのがよいでしょう。取りあえず、以下のようなドキュメントがありました。

数値計算の落とし穴
IEEE754 Floating Point Number


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

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   浮動小数点の演算について kumaneko 2004-12-21 17:17
     Re: 浮動小数点の演算について mayor 2004-12-21 19:21
       Re: 浮動小数点の演算について Fumio 2004-12-21 21:13
         Re: 浮動小数点の演算について kumaneko 2004-12-23 19:01
         » Re: 浮動小数点の演算について Fumio 2004-12-23 21:45
             Re: 浮動小数点の演算について kumaneko 2004-12-25 23:30
               Re: 浮動小数点の演算について salvox 2004-12-26 4:58
                 Re: 浮動小数点の演算について Fumio 2004-12-26 6:07
                   Re: 浮動小数点の演算について salvox 2004-12-26 16:19
                     Re: 浮動小数点の演算について kumaneko 2004-12-29 11:34

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