有人可以解释一下吗(直接来自文档-强调我的):
math.ceil(x) 以 float 形式 返回 x 的上限,即大于或等于 x的最小 整数值。 math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于 x的最大 整数值。
math.ceil(x) 以 float 形式 返回 x 的上限,即大于或等于 x的最小 整数值。
math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于 x的最大 整数值。
当根据定义应该计算整数时,为什么要返回.ceil浮点数?.floor
.ceil
.floor
编辑:
好吧,关于为什么它们应该 返回浮点数,这得到了一些很好的论据,当指出它们实际上_确实_ 在 Python 3 中返回整数时,我刚刚习惯了这个想法……
正如其他答案所指出的,在 python 中,它们返回浮点数可能是因为历史原因防止溢出问题。但是,它们在 python 3 中返回整数。
>>> import math >>> type(math.floor(3.1)) <class 'int'> >>> type(math.ceil(3.1)) <class 'int'>
浮点数的范围通常超过整数的范围。通过返回一个浮点值,函数可以为位于整数可表示范围之外的输入值返回一个合理的值。
考虑:如果floor()返回一个整数,应该floor(1.0e30)返回什么?
floor()
floor(1.0e30)
现在,虽然 Python 的整数现在是任意精度的,但并不总是这样。标准库函数是等效 C 库函数的薄包装。