掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
計算結果を正常に格納するには? (ID:88459)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>こんな計算を行ってみたら、変数に「8.000001E-06」が >入ってました。なぜなのでしょうか? 情報処理をやってきた者にとっては当たり前のことですが、 (別に情報処理をやってるから偉い訳ではないですがね) 知らない人にとっては理解しがたい問題の一つですね。 簡単に言えばコンピュータが二進数で計算するために起きる「誤差」です。 >そして、どうすれば、正常な計算値がはいるのでしょうか? 誤差を考慮して計算するか、誤差を無くすかしかないです。 前者なら基本的にそのままやってください。 ちなみに「8.000001E-06」というのは 「8.000001 × 10^-6」=「0.000008000001」ってことです。 c = format$( a*b, "0.000000" ) 等とすれば必要な有効桁数で結果が得られます。 後者の場合、小数点以下3桁まででいいなら 1000倍して整数にして計算しましょう。 ただしこの場合でも割り算をすれば誤差がでますし、 オーバーフローにも気をつける必要があります。 あともげさんも言ってる通り、 暗黙の型変換(演算結果を直接文字列型変数に入れたりすること)は 極力しない方がいいでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.