【发布时间】:2019-02-24 12:01:12
【问题描述】:
#define M_PI acos(-1.0)
int main()
{
double z1 = sin(M_PI / 2 + 3 * x) / (1 - sin(3 * x - M_PI));
double z2 = 1 / tan(5 * M_PI / 4 + 3 * x / 2); // line 14
double z3 = 1 / tan(5 / 4 * M_PI + 3 * x / 2); // line 15
printf("%lf, %lf, %lf, z1, z2, z3);
}
所以你可以在第 14 行和第 15 行看到我们有非常相似的表达式。那么为什么我们会得到不同的结果呢?
【问题讨论】:
-
请在问题中发布您的代码,而不是截图。
-
将代码放入问题中,省略图像
-
如果图片被代码替换,这将是一个很好的问题。我不明白的是,为什么现在认为拍摄屏幕照片并将其粘贴为图像而不是复制并粘贴到问题编辑器中更快!
-
因为
5/4 == 1但5./4 == 1.25。 -
顺便说一句,如果你想强制浮点,那么你可以重写为
5.0 * M_PI / 4.0或5.0 / 4.0 * M_PI,但即使是这些也可能导致略有不同的结果
标签: c++ c visual-studio math visual-c++