繁体   English   中英

运算顺序int(4 * x / y)与int(x /(y / 4))

[英]Order of operation int(4*x/y) vs int(x/(y/4))

假设x和y的类型为int。

是两个表达式:

int(4*x/y)

和:

int(x/(y/4))

始终对int类型的所有xy求值相同? 它们在数学上应该是正确的,但是在我编写的程序中,只有第二个表达式是一致的(即产生期望值)。

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

我假设x和y是整数

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

这给你:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM