【发布时间】:2017-06-07 20:07:04
【问题描述】:
dig = 16807
digcount = len(str(dig))
minroot = dig ** (1 / float(digcount))
print minroot
print minroot.is_integer()
minroot 返回 7.0 作为浮点数,但 is_integer 返回 FALSE。
我试过(7.0).is_integer(),它返回TRUE。什么给了?
【问题讨论】:
-
当
printing 浮动时,Python 2 会更积极地进行循环。 -
minroot是7.000000000000001不是7.0使用print repr(minroot)来查看更好的表示值 -
@MooingRawr 哇,这是正确的......为什么它会那样做?答案应该是 7 偶数
-
@MooingRawr:严格来说,不是确切的值,而是足够的数字来区分该值与任何其他浮点数。
-
@Alex:
minroot不是整数。在实数算术中,它将是一个整数,但真正的实数算术是无法实现的。这是浮点数,一个近似值。
标签: python python-2.7 python-2.x