gpt4 book ai didi

c++ - 乘法期间的C++运算顺序

转载 作者:行者123 更新时间:2023-12-03 07:06:49 24 4
gpt4 key购买 nike

我正在用C++写一个简单的程序,我注意到当我在乘​​以一些数字时切换顺序时,会得到2个不同的输出,无法弄清楚它为什么发生。

void multiplier()
{
double r, v1, v2;
cout << "Enter the value of r" << endl;
cin >> r;
v1 = 4/3*M_PI*r*r*r;
cout << v1 << endl;
v2 = M_PI*4/3*r*r*r;
cout << v2 << endl;
}
根据计算器,第二个输出是正确的输出。

最佳答案

这里发生的是整数除法和浮点除法之间的区别。乘法和除法从左到右解释。在第一种情况下,首先读取4/3。当您编写4/3时,编译器会将其解释为整数除法,这将返回1。但是,在第二种情况下,M_PI*4将当前值转换为double,因此当您接下来将其除以3时,程序将执行浮点除法,从而为您提供正确的答案。

关于c++ - 乘法期间的C++运算顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64507892/

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