• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++でのdouble型データの精度)

C++でのdouble型データの精度について

このQ&Aのポイント
  • C++のdouble型データの精度について調査しました。コンパイラによって異なる可能性もありますが、一般的には16桁の精度があります。
  • しかし、実際には11桁という結果が得られることもあります。これはコンパイラの仕様や計算方法によるもので、注意が必要です。
  • もし正確な値の保持が必要な場合は、他のデータ型や方法を検討することをおすすめします。

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

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

真の値との誤差は (123456789012345.6-123456789012345.593800)/123456789012345.6 = 約5×10^-17 なので、10進数16桁程度の精度は十分ありますよ。

MetalLover
質問者

お礼

御回答ありがとうございます。 すみません、僕の勘違いでした。 printf("%.1f", d); で、小数点以下の精度を1桁にするか、 cout<<setprecision(16); で、coutストリームの精度を16桁に指定すると上手く行きました

その他の回答 (1)

  • co2ro
  • ベストアンサー率30% (154/499)
回答No.1

あなたが、何処で仕入れた知識か分かりませんが、先ず、あなたが言う『精度』の概念が間違っています。(『単精度』と『倍精度』と云う言葉を知っていますか?) 長文を書くのは苦手なので、『単精度』、『倍精度』で検索するか一応wikiのURLを張り付けるのでそちらを参照してください。

参考URL:
http://ja.wikipedia.org/wiki/%E5%80%8D%E7%B2%BE%E5%BA%A6