当我使用 numpy.int32 类型的数字来初始化timedelta时,我收到警告 RuntimeWarning:在long_scalars中遇到溢出。数字不是那么大,以至于应该出现溢出。
以下代码显示了问题:
from datetime import timedelta
import numpy
if __name__ == '__main__':
a = numpy.int32(2147)
b = numpy.int32(2148)
print timedelta(seconds = a) # works well
print timedelta(seconds = int(b)) # works well
print timedelta(seconds = b) # bad result
这给出了输出:
0:35:47
0:35:48
-1 day, 23:24:13.032704
[...]test.py:10: RuntimeWarning: overflow encountered in long_scalars
print timedelta(seconds = b)
我测试了一些数字。它似乎适用于数字< = 2147并且对数字> = 2148发出警告。
我期待着解释:)