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

Susan Sarandon
发布: 2024-11-13 01:11:02
原创
453 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板