1

假设 x 和 y 是 int 类型。

是两个表达式:

int(4*x/y)

和:

int(x/(y/4))

x总是对所有类型和y类型进行相同的评估int?它们应该在数学上,但在我编写的程序中只有第二个表达式是一致的(即产生预期值)。

4

2 回答 2

1

在许多编程语言中,4*x/y并且x/(y/4)是不同的,因为 是y/4一个整数,是除以 的截断y结果4。中不存在这样的截断4*x/yy关于 when的明显差异1,在这种情况下,第二个表达式除以零,而第一个表达式计算4*x

于 2013-07-18T23:41:21.873 回答
1

我假设 x 和 y 是整数

那么当然不是 :) 在整数上: x/4=floor(x/4) 数学上

这给了你:

地板(4*x/y)和地板(x/地板(y/4))

于 2013-07-18T23:42:27.467 回答