OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

double型からfloat型への型変換について

  • 暇なときにでも
  • 質問No.235483
  • 閲覧数233
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 5% (14/237)

double型で-999.999という数字をfloat型へキャストして
少数以下6桁をprintf文で表示すると、それぞれ以下の様になりました。

double -999.999000
float -999.999023

これは、単純にfloatの精度の問題なのでしょうか?
また、計算機がどういうルールに基づいて計算をおこなっているということなのでしょうか?
教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

> これは、単純にfloatの精度の問題なのでしょうか?

その通りです。

IEEE 754 のフォーマットにしたがった 32ビット浮動小数点表記では仮数部が
23ビットですから、高々7桁程度の精度しかありません。


> また、計算機がどういうルールに基づいて計算をおこなっているということなのでしょうか?

double → float の場合には、仮数部が 52 → 23 ビット、指数部が 12 → 8 ビットと少なくなります。
元の数値が float で表現できる範囲で収まるのであれば、仮数部のビットを切りつめて、指数部を変換する
だけです。

元の数値が float に収まりきらない場合には、overflow や underflow が発生します。

真剣に知りたいのであれば、参考URL をどうぞ。
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ