可能math.ceil()错误
在Windows 7上的Python 3.2,以下内容:可能math.ceil()错误
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))
感谢,
巴里
试试这个:print(int(math.ceil(24/10.0)))
,它会返回正确的值。正如已经指出的那样,在Python 2.5中,表达式24/10
的计算结果为2
,因为它正在执行整数除法。
编程语言的快速细读发现整数由整数分割返回
的整数
- 蟒2
- 的java
- C++
- Ç
- C#
- 红宝石
- ocaml的
- F#
- 去
- FORTRAN
浮点(星号表示存在替代语法返回整数)
- 蟒3 *
- java脚本
- PHP
- 的perl *
- 镖*
- 的VBScript
- VB。净*
- 二郎*
- 帕斯卡*
别的
- 的Clojure(返回的比例,如果它不能返回一个整数)
Python的选择变化该师的语义是当时的quite controversial。返回一个整数通常让程序员和数学家感到意外,但是,有经验的程序员在发现划分两个整数可以返回浮点时经常会有同样的感觉。
我喜欢使用比率来存储浮游物的想法。它是否被考虑用于Python? – Baz 2012-03-15 21:47:04
在'fractions'模块中有'Fraction'。但你几乎从不需要它。在'decimal'模块中还有'Decimal',它充当了更友好的浮点。这些数据类型固有地比整数和浮点更慢。他们也很笨拙。根据需要使用。 – 2012-03-15 22:15:44
我想这不是Python中的错误,而是更低的级别。 – bigblind 2012-03-15 19:16:11