我尝试在Python 3.3中执行以下类型转换操作
int( 10**23 / 10 )
Output: 10000000000000000000000
并且在增加一个或更多的功率之后
int( 10**24 / 10 )
Output: 99999999999999991611392
int( 10**25 / 10 )
Output: 999999999999999983222784
为什么会这样?虽然像一个简单的类型转换
int( 10**24 )
Output: 1000000000000000000000000
不影响价值观.
解决方法:
您正在使用/运算符进行浮点除法. 10 ** 24/10恰好有一个不精确的整数表示.
如果需要整数结果,则除以//.
>>> type(10**24/10)
<class 'float'>
>>> type(10**24//10)
<class 'int'>