重要な挙動を持つシステムを説明する物理シミュレーションをコーディングしています。これは、このレジームでのその特性が外部パラメーターに非常に急激に依存していることを意味します (たとえば、水は 100°C のすぐ下の液体で、すぐ上の気体です)。私は現在の結果に満足しておらず、変数の精度に疑問を持っています。これまで double を使用してきましたが、期待できる精度についてはわかりません。たとえば、次のようになります。
long double K = 0.274653072;
cout << K << endl;
と
float K = 0.274653072;
cout << K << endl;
同じ出力 (0.274653) が得られます。これは、cout 演算子のパラメーターが特定の桁数の後に切断したためですか、それとも保存時に 3 の後にすべてを本当に失ったのでしょうか? 10^{-8} または 10^{-9} までの精度で最高の効率が必要な場合、どの変数を使用すればよいですか? (これが重要な場合は、計算に指数を使用しています)