• ベストアンサー

機械の扱える最も0に近い実数は?

プログラミング初心者です。学校の宿題をやっているのですが、実数の計算結果をファイルに書き出すと、10の-6乗よりも0に近い実数はすべて0.000000となってしまいます。 これは機械で扱える実数で最も0に近いのは10の-6乗だということでしょうか? それともこれはファイルに書き出す時だけの問題で、もっと0に近い実数でも計算途中では扱えるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

C であれば、ヘッダーファイル limits.h に定数の定義があります。 実数の一番小さな値は、単精度なら FLT_MIN で、倍制度なら DBL_MIN で定義されています。 単に「単精度(浮動小数点数)」という場合には、IEEE 形式を指すのが普通ですが、IBM 形式も それなりにメジャーですので、一概に幾ら、とは言えません。 ちなみに、 > 実数の計算結果をファイルに書き出すと、10の-6乗よりも0に近い実数はすべて0.000000となってしまいます。 は、printf() で、書式指定を %f と精度指定をしないから、ですね。 %15.10f のように、精度指定をすれば、変数があらわすことができる範囲で詳しく出力されます。

marradona
質問者

お礼

ありがとうございます。勉強になります。

その他の回答 (2)

  • tomin
  • ベストアンサー率21% (18/82)
回答No.2

単精度ならば2^(-149)、倍精度なら2^(-1074)まで扱えます。 それぞれ10^(-45)と10^(-324)程度の大きさです。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

プログラム次第です。何桁でも計算できるものもありますよ。

関連するQ&A

専門家に質問してみよう