Ale*_*ord 3 c math floating-point precision division
我输入了以下代码(并且没有编译问题或任何问题):
float y = 5/2;
printf("%f\n", y);
Run Code Online (Sandbox Code Playgroud)
输出很简单: 2.00000
我的数学没有错吧?或者我在 / 操作符上错了?这意味着分裂不是吗?5/2 应该等于 2.5?
任何帮助是极大的赞赏!
5是int并且2是int。因此,5/2将使用整数除法。如果您5用5.0f(或2用2.0f)替换,制作intsa 之一float,您将获得浮点除法并获得2.5您期望的结果。您也可以通过显式转换分子或分母(例如((float) 5) / 2)来达到相同的效果。