我是C ++的新手,希望得到一些帮助。 我不明白为什么我在下面的总和上得到小数点后只有一位数的输出。 我试图解决这个问题但没有成功。
int main()
{
double alt, t;
t = 4.5;
// function for calculating the altitude over time.
alt = (-0.12)*pow(t, 4) +(12.0)*pow(t, 3) -(380.0)*pow(t, 2) +(4100.0)*t +220.0;
cout << alt << endl;
return 0;
}
答案 0 :(得分:0)
cout
的默认行为是打印浮点的六位有效数字。您可以使用以下内容进行更改:
cout.precision(10);
cout << alt << endl;
给出输出:
12019.2925
这似乎是正确的解决方案。
您不应该尝试将精度设置为高于大约15的任何值,因为这大约是double类型的精度限制(通常)。您可以使用numeric_limits<double>::digits10
中的<limits>
来确定您实际拥有的精度。