LeetCode 69-为什么int(2.0)等于1?

时间:2018-08-17 06:14:17

标签: python-3.x int

我的代码如下:

import math
class Solution(object):
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        if x == 0: return 0

        res = pow(math.e, 0.5 * math.log(x))
        print(res)

        return int(res)

这基于image

当测试用例为4时,它预期会输出2,但会退还1

我检查res的值为2.0

那这里有什么问题?

1 个答案:

答案 0 :(得分:0)

如果您print(repr(res)),您会看到res = 1.9999999999999998的{​​{1}}确实是int

如果适合您的用例,您可以1(有doc of round)。

如果您对integer square roots感兴趣,那么只有这篇维基百科文章对您来说可能很有趣。