在Windows 7 Python 3.2上,如下所示:
print(int(math.ceil(24/10)))不出所料地给出了'3‘。
在装有活动Python 2.5的Windows Server上,它给出了'2‘。
这里的问题是什么?我如何解决它?
以下是我的原始代码:
number_of_pages = int(math.ceil(number_of_rows/number_of_rows_per_page))谢谢,
巴里
发布于 2012-03-16 03:15:50
Python2.x使用截断差,所以24/10的答案是2。2的ceil仍然是2。
修复方法是将其中一个操作数转换为浮点数:
print(int(math.ceil(24.0/10)))发布于 2012-03-16 05:12:24
快速浏览一下编程语言就会发现,整数除以整数会返回
a integer
java
浮点(星号表示有返回整数的替代语法)
Python更改除法运算符的语义时选择的是quite controversial。返回一个整数通常会让初学编程的程序员和数学家感到惊讶,然而,当有经验的程序员发现将两个整数相除可以返回浮点数时,他们通常会有同样的感觉。
发布于 2012-03-16 03:18:26
试试这个:print(int(math.ceil(24/10.0))),它将返回正确的值。如前所述,在Python2.5中,表达式24/10的计算结果为2,因为它执行的是整数除法。
https://stackoverflow.com/questions/9726550
复制相似问题