假设x和y的类型为int。
这两个表达式是什么:
int(4*x/y)
和
int(x/(y/4))
对于x
类型的所有y
和int
,始终评估为相同?它们应该是数学上的,但只有第二个表达式在我编写的程序中是一致的(即产生预期值)。
答案 0 :(得分:1)
在许多编程语言中,4*x/y
和x/(y/4)
是不同的,因为y/4
是一个整数,是y
除以4
的截断结果。 4*x/y
中不存在此类截断。当y
为1
时明显不同,在这种情况下,第二个表达式除以零,而第一个表达式计算4*x
。
答案 1 :(得分:1)
我假设x和y是整数
当然不是:) on integers:x / 4 = floor(x / 4)数学
给你:
地板(4 * X / Y) 和 地板(X /地板(Y / 4))