C++ 相同的方程式,但结果不同(计算器与 C++)

C++ Same Equation but different results with (Calculator vs C++)

过去两天我一直在做一个小项目,但现在一切都崩溃了, 因为有一个等式 returns在 C++/C# 程序中计算时为 8.660254,但在您尝试手动或使用计算器计算时为 0。

公式:

float mgr1 = (x + tr * 0.5f - tr / 2) * 1.73205f * 10.0f;

以我为例:

x = 0;
tr = 1;
float mgr1 = (0 + 1 * 0.5f - 1 / 2) * 1.73205f * 10.0f;

正确的结果是0,但是用C++计算时,像这样,它returns 8.660254?我疯了吗?关于 C++,有什么我不知道的吗?这是什么?

整数的 / 运算符 return 是一个整数,而不是浮点值。 1/2 是 0.

1.0/2 或 1/2.0 return 如您所愿。