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

时间:2016-04-23 15:50:54

标签: c# c++ c++11 numbers equation

过去两天我一直在做一个简短的项目,但现在一切都崩溃了, 因为有一个等式在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 ++计算时,它会返回8.660254?我疯了吗?有什么关于C ++的东西我不知道吗?它是什么?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:4)

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

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