<分区>
我输入了以下代码(没有编译问题或任何问题):
float y = 5/2;
printf("%f\n", y);
输出很简单:2.00000
我的数学没有错吧?还是/运算符(operator)我错了?这意味着 split 不是吗? 5/2 应该等于 2.5?
非常感谢任何帮助!
<分区>
我输入了以下代码(没有编译问题或任何问题):
float y = 5/2;
printf("%f\n", y);
输出很简单:2.00000
我的数学没有错吧?还是/运算符(operator)我错了?这意味着 split 不是吗? 5/2 应该等于 2.5?
非常感谢任何帮助!
最佳答案
5
是一个 int
而 2
是一个 int
。因此,5/2
将使用整数除法。如果将 5
替换为 5.0f
(或将 2
替换为 2.0f
),则制作其中一个 int
是一个 float
,您将得到浮点除法并得到您期望的 2.5
。您还可以通过显式转换分子或分母(例如 ((float) 5)/2
)来实现相同的效果。
关于c - 为什么即使我使用 float ,5/2 的结果也是 '2'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40264523/