过去两天我一直在做一个简短的项目,但现在一切都崩溃了, 因为有一个等式在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 ++的东西我不知道吗?它是什么?
答案 0 :(得分:4)
整数的/运算符返回一个整数,而不是浮点值。 1/2是0。
1.0 / 2或1 / 2.0返回您的期望。