我正在编写描述具有关键行为的系统的物理模拟,这意味着它在此状态下的特性对外部参数有非常强烈的依赖性(例如,水在 100°C 以下是液体,而气体则在上面)。我对我目前的结果不满意,我现在对我的变量的精度有些怀疑。到目前为止,我一直在使用双打,但我不确定我可以从他们那里得到的精度,例如:
long double K = 0.274653072;
cout << K << endl;
和
float K = 0.274653072;
cout << K << endl;
给我相同的输出(0.274653),是因为 cout 运算符在一定位数后切割的参数,还是在存储 3 之后我真的丢失了所有内容?如果我想获得最高 10^{-8} 或 10^{-9} 的精度的最佳效率,我应该使用哪个变量?(如果这很重要,我在计算中使用指数)