gpt4 book ai didi

c++ - float 的设置精度

转载 作者:行者123 更新时间:2023-11-28 02:04:42 24 4
gpt4 key购买 nike

大家好,我是 C++ 新手我正在尝试编写函数来计算二次惯性矩并将精度设置为小数点后 3 位。在输出中,第一次调用不应用小数点后 3 位,但应用了以下 4 次调用。这是我的代码,请帮我找出错误,如果可能请解释一些细节,非常感谢!

double beamMoment(double b, double h) //the function that calculating the second moment of inertia
{
double I; //variables b=base, h=height, I= second moment of inertia

I = b * (pow(h, 3.0) / 12); // formular of the second momeent of inertia


ofs << "b=" << b << "," << "h=" << h << "," << "I=" << I << setprecision(3) << fixed << endl;
ofs << endl;


return I;

}

int main()
{
beamMoment(10,100);
beamMoment(33, 66);
beamMoment(44, 88);
beamMoment(26, 51);
beamMoment(7, 19);
system("pause");
return 0;
}

我的文本文件中的输出如下:

b=10,h=100,I=833333 

b=33.000,h=66.000,I=790614.000

b=44.000,h=88.000,I=2498730.667

b=26.000,h=51.000,I=287410.500

b=7.000,h=19.000,I=4001.083

最佳答案

您必须在打印数字之前设置流精度。

ofs << 5.5555 << setprecision(3) << endl; // prints "5.5555"
ofs << setprecision(3) << 5.5555 << endl; // prints "5.555"

流运算符 <<>>实际上,是可以链接的方法。假设我们有一段示例 Java 代码,例如:

dog.walk().stopByTheTree().pee();

在 C++ 中,如果我们使用流运算符,它看起来像:

dog << walk << stopByTheTree << pee;

dog 的操作对象从左到右执行,“箭头”的方向无关紧要。这些方法名称只是语法糖。

here了解更多详情。

关于c++ - float 的设置精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com