C ++具有相同的公式,但结果不同(计算器与C ++)

-1 c# c++ equation numbers c++11

最近两天我一直在做一个简短的项目,但是现在一切都崩溃了, 因为有一个方程在C ++ / C#程序中计算时返回8.660254,但是当您尝试手动或使用计算器计算时返回0。

方程:

float mgr1 = (x + tr * 0.5f - tr / 2) * 1.73205f * 10.0f;
Run Code Online (Sandbox Code Playgroud)

就我而言:

x = 0;
tr = 1;
float mgr1 = (0 + 1 * 0.5f - 1 / 2) * 1.73205f * 10.0f;
Run Code Online (Sandbox Code Playgroud)

正确的结果是,0但是用C ++计算时,它返回8.660254?我要疯了吗?关于C ++,我有不知道的东西吗?它是什么?

在此处输入图片说明

在此处输入图片说明

小智 5

整数的/运算符返回整数,而不是浮点值。1/2是0。

1.0 / 2或1 / 2.0返回您所期望的。