在Python中对’int’进行类型转换会产生错误的结果

我尝试在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'>
上一篇:如何获得除法十进制数的结果? Pi


下一篇:C#中的英尺转换器脚坏了吗?