首页 >后端开发 >Python教程 >如何在 Python 中检查浮点型是否代表整数?

如何在 Python 中检查浮点型是否代表整数?

Susan Sarandon
Susan Sarandon原创
2024-11-13 01:11:02559浏览

How to Check if a Float Represents an Integer in Python?

确定浮点值的完整性

在此代码片段中,您正在寻找小于等于整数的最大立方根12,000:

processing = True
n = 12000
while processing:
    n -= 1
    if n ** (1/3) == #checks to see if this has decimals or not

验证浮点值是否为整数,您可以使用 float.is_integer() 方法:

>>> (1.0).is_integer()
True
>>> (1.555).is_integer()
False

请注意,在 Python 2 中,由于整数操作数的底除法,1/3 结果为 0,并且浮点运算可能不精确。考虑到这一点调整循环:

for n in range(12000, -1, -1):
    if (n ** (1.0/3)).is_integer():
        print n

我们得到了预期的结果:

27
8
1
0

但是,由于浮点运算的不精确性,高于 3 立方的数字(包括10648)被省略。为了解决这个问题,您可以检查接近整数的数字:

import math

for n in range(12000, -1, -1):
    if math.isclose((n ** (1.0/3)), round(n ** (1.0/3))):
        print n

此变体输出:

10648
27
8
1
0

对于 Python 3.5 及更高版本,您可以使用 math. isclose() 函数检查浮点值是否在可自定义的边距内。

以上是如何在 Python 中检查浮点型是否代表整数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn