- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C++でのdouble型データの精度)
C++でのdouble型データの精度について
このQ&Aのポイント
- C++のdouble型データの精度について調査しました。コンパイラによって異なる可能性もありますが、一般的には16桁の精度があります。
- しかし、実際には11桁という結果が得られることもあります。これはコンパイラの仕様や計算方法によるもので、注意が必要です。
- もし正確な値の保持が必要な場合は、他のデータ型や方法を検討することをおすすめします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
真の値との誤差は (123456789012345.6-123456789012345.593800)/123456789012345.6 = 約5×10^-17 なので、10進数16桁程度の精度は十分ありますよ。
その他の回答 (1)
- co2ro
- ベストアンサー率30% (154/499)
回答No.1
あなたが、何処で仕入れた知識か分かりませんが、先ず、あなたが言う『精度』の概念が間違っています。(『単精度』と『倍精度』と云う言葉を知っていますか?) 長文を書くのは苦手なので、『単精度』、『倍精度』で検索するか一応wikiのURLを張り付けるのでそちらを参照してください。
お礼
御回答ありがとうございます。 すみません、僕の勘違いでした。 printf("%.1f", d); で、小数点以下の精度を1桁にするか、 cout<<setprecision(16); で、coutストリームの精度を16桁に指定すると上手く行きました