【发布时间】:2020-04-28 22:40:56
【问题描述】:
当我遇到问题时,我正在编写一个计算球体体积的函数,但我不知道为什么如果我将 4/3 * PI 更改为 PI * 4/3 会得到不同的结果。 评估的顺序是什么,如果我使用 (4/3) * PI 和 PI * (4/3) 这样的括号,我在这两种情况下都得到了错误的答案。
#define PI 3.141592
float Volume(int radius){
return (4/3 * PI * pow(radius, 3));
}
float Volume(int radius){
return (PI * 4/3 * pow(radius, 3)); //the good one
}
【问题讨论】:
-
当你将两个整数相除时,你会得到一个带有截断商的整数。
标签: c++ floating-point integer integer-arithmetic