C++;,小数点后一位的输出 我是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; } intmain() { 双alt,t; t=4.5; //用于计算随时间变化的高度的函数。 alt=(-0.12)*功率(t,4)+(12.0)*功率(t,3)-(380.0)*功率(t,2)+(4100.0)*功率+220.0; cout

C++;,小数点后一位的输出 我是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; } intmain() { 双alt,t; t=4.5; //用于计算随时间变化的高度的函数。 alt=(-0.12)*功率(t,4)+(12.0)*功率(t,3)-(380.0)*功率(t,2)+(4100.0)*功率+220.0; cout,c++,C++,cout的默认行为是打印六位有效浮点数。您可以通过以下方式进行更改: cout.precision(10); cout << alt << endl; 这似乎是正确的解决方案 您不应该尝试将精度设置为高于大约15的任何值,因为这大约是double类型的精度限制(通常)你可以使用数字限制::DigiS10从 中确定你到底有多精确。你应该考虑把这个任务稍微打破一点。从可读性的角度来看,这是一场噩梦,大概有一半的原因你不能弄清出了什么问题。谢谢。我不知道你说的是什么意思。也许

cout的默认行为是打印六位有效浮点数。您可以通过以下方式进行更改:

cout.precision(10);
cout << alt << endl;
这似乎是正确的解决方案


您不应该尝试将精度设置为高于大约15的任何值,因为这大约是double类型的精度限制(通常)你可以使用<代码>数字限制::DigiS10从<代码> 中确定你到底有多精确。

你应该考虑把这个任务稍微打破一点。从可读性的角度来看,这是一场噩梦,大概有一半的原因你不能弄清出了什么问题。谢谢。我不知道你说的是什么意思。也许其中一个运算符只使用了一个数字,因为在所有双常数之后只使用了一个数字?所以,要么将它们更改为小数点后有.00位(或有多少位是有效的),要么将其完全去掉?好吧,要么用括号表示运算顺序(BODMAS,或美国人的PODMAS),或者您甚至可以使用多行进一步拆分逻辑。我感谢您的努力非常感谢!我以为precision()只是为了限制输出。我感谢您的努力
12019.2925