電子書籍の厳選無料作品が豊富!

ASP VBScript

割るとオーバーフローを起す計算式があるとして(たとえばイメージ的に下記のような)、
例)kekka = 46.6944444444444 / 87.3666666666667

オーバーフローを起させずに結果を出すことはできるのでしょうか。

基本的な疑問は下記と同じなのですが、結局のところsplitを使用したら、どうやって計算したのか、どのように解決しているかわかりません。
http://oshiete1.goo.ne.jp/qa500869.html

私の今行っているプログラムでは、結果は小数点第5位以下は切り捨て
てもいいのですが、結果表示以外はできるだけ、小数点を切り捨てず、まじめに計算した結果に近い数値をだしたいのです。

よろしくお願いいたします。

A 回答 (2件)

オーバーフローを起させずに結果を出すことはできるのでしょうか。



理論上不可能です・・・・

コンピュターで計算するとき、有効桁数すがありますのでこれを超える計算はできません

注意:複雑なプログラムも組めば・・有効桁数を増やすことは可能です

πの計算で100万桁けたとか有限になるのも・有効桁数数に限界があるからです、しいて言えば・・計算時間を気にしなければメモリー(補助記憶装置含む)より有効桁数の決まります

実際にπの計算で有効桁数100万桁は、複雑なプログラムにより有効桁数を増やしていますので・・・
    • good
    • 0
この回答へのお礼

やはり、むずかしいということですね。
ありがとうございます。

お礼日時:2007/04/06 09:56

最近ではそういうのもオーバーフローと言うようになったのでしょうか?


あおりでなく疑問です。

オーバーフローというとたとえば 2.0 ^ 1024 とか計算させたときの現象だと
思っていたのですが。
オーバーフローとは 【overflow】 - 意味・解説 : IT用語辞典 e-Words
http://e-words.jp/w/E382AAE383BCE38390E383BCE383 …

それはおいといて、小数点以下5桁まで生かして結果を求めるということですが
一般的なコンピューターでの浮動小数点演算では有効桁数は十進数で15桁くらいですから、
整数部にも5桁使うとしても気にするほどの誤差は出ないと思います。
#間違った計算の仕方をしなければ

例に挙げられている
> 46.6944444444444 / 87.3666666666667
は小数点以下15桁(ってこれPCでの普通の浮動小数点数で表現できる数字じゃないですね)ですから、
小数点以下5桁求めればいいところに持ってくるにはオーバーすぎるでしょう。
せいぜい6桁目か7桁目くらいまで計算しとけば十分のはずです。

ところでπは無理数ですので、何桁用意しようが有限桁の有理数(≒小数)

表現することはできません。
    • good
    • 0
この回答へのお礼

桁をへらしたりして、オーバーフローを起さないようにするしかなさそうですね。
ありがとうございました。

お礼日時:2007/04/06 10:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!