【发布时间】:2016-02-19 05:44:17
【问题描述】:
正如标题所说,我有点困惑为什么乘以 1/2 与乘以 0.5 不同。
获取以下代码:
double range = (46/2) + (1/2 * height); //say height is 10
返回:
23
这显然是一个不正确的值,它似乎只评估了 46/2 部分。
但是,当我这样做时:
double range = (46/2) + (.5 * height); //say height is 10
返回:
28
这是正确的。
那么为什么会这样呢?
(我确信以前有人问过这个问题,但是我不确定如何称呼这种情况,并且在 SO & google 中的搜索没有找到我的答案)
【问题讨论】:
-
尝试将 1/2 括在括号中,如 (1/2),它应该可以工作
-
@VivekSolanki 不,这似乎对我不起作用。
-
哦,对,对不起,我错过了类型转换:)
-
@VivekSolanki 没问题。