【发布时间】:2018-06-20 12:34:26
【问题描述】:
我最近参与了有关在计算机科学考试中使用伪代码的讨论。有一个使用整数除法的问题。我说 a DIV b 和 INT(a / b) 是一样的,但是另一个贡献者说 INT() 的效果取决于语言的实现和它有时可能会四舍五入。
我的理解(以及 36 年的经验)是 int() 总是截断 - 即四舍五入。您是否知道设计上并非如此的任何编程语言,例如int(1.7) 会给出 2 吗?
【问题讨论】:
-
由于您不能始终以二进制形式精确地表示十进制数,
int()可以有时在某些语言中进行四舍五入。例如在 Python 中,int(2.9999999999999999)给你 3。但是int(2.999999999999999)(少一个 9)给你 2。 -
谢谢 - 这是一个有趣的例子。我想我的意思是“设计”,而不是代表性的怪癖!
-
@Psytho:
int调用无关紧要:2.9999999999999999已经完全等于3.0,所以int接收的参数正好是@ 987654328@ 和int返回完全相同的值。 Python 的int(当前)从不从零舍入。