当前位置: 首页 > 面试题库 >

为什么Python的math.ceil()和math.floor()操作返回浮点数而不是整数?

陶博涉
2023-03-14
问题内容

有人可以解释一下吗(直接来自文档-强调我的):

math.ceil(x) 以浮点数形式 返回 x 的上限,最小 数值大于或等于x。

math.floor(x) 以浮点数形式 返回 x 的下限,即小于或等于x的最大 数值。

为什么会.ceil.floor回报花车当它们被定义应该算整数?

编辑:

好吧,这有一些很好的论据来说明为什么它们 应该
返回浮点数,而当@jcollado指出它们实际上 _确实_在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)返回什么?

现在,尽管Python的整数现在具有任意精度,但并不总是这样。标准库函数是等效C库函数的精简包装。



 类似资料:
  • 本文向大家介绍Math.ceil()、Math.round()、Math.floor()三者的区别是什么?相关面试题,主要包含被问及Math.ceil()、Math.round()、Math.floor()三者的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 Math.ceil() 函数返回大于或等于一个给定数字的最小整数。 `console.log(Math.ceil(.95)); //

  • 问题内容: 官方Javadoc 说,它返回“等于数学整数”的a,但是为什么它不应该返回a ? 问题答案: 根据同一Javadoc: 如果自变量是或无穷大或正零或负零,则结果与自变量相同。不能用。 最大的价值也比最大的大,所以它必须是一个。

  • 问题内容: 在Java中,hashcode()方法返回整数而不是long。有什么具体原因吗? 问题答案: 那么,一个良好的理由是,基于数据结构(,)使用一个数组来存储箱,并且阵列被限制为索引。 如果必须将其映射到数组索引,那么您将一无所获。

  • 问题内容: 我正在通过LPTHW,遇到了一些我听不懂的东西。您何时会需要布尔值或返回布尔值以外的其他值?LPTHW文本指出所有语言(如python)都具有此行为。他是说解释型语言还是编译型语言,还是鸭子类型的还是静态类型的语言? 我运行了以下代码: 请帮助我了解这里发生了什么。 根据文档:http : //docs.python.org/2/library/stdtypes.html 除非另有说明

  • 问题内容: 因此,如果我有一个范围为‘0-1024’的数字,并且希望将其取为‘0-255’,那么数学将决定将输入除以输入的最大值(在这种情况下为1024),从而得出我的数字介于0.0-1.0之间。然后将其乘以目标范围(255)。 我要做什么! 但是由于Java中的某些原因(使用处理),它将始终返回值0。 该代码将像这样简单 但是我只得到0.0。我已经尝试过两次和诠释。一切都无济于事。为什么!? 问

  • 我使用的是Laravel,并有一个查询,它使用列的进行选择: 我已经安装了mysqldn,AFAIK Laravel使用。 但是是一个字符串,不管列是什么类型。(它是一个整数列) 另外,如果我这样做: < code>foo_bar以整数形式返回。