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

SMa*_*gic 4 python int division python-3.x

我尝试在Python 3.3中执行以下类型转换操作

int(10**23/10)

输出:10000000000000000000000

并且在增加一个或更多的功率之后

int(10**24/10)

输出:99999999999999991611392

int(10**25/10)

输出:999999999999999983222784

为什么会这样?虽然像一个简单的类型转换

int(10**24)

输出:1000000000000000000000000

不影响价值观.

Sim*_*mon 5

您正在使用/运算符进行浮点除法.10**24/10恰好有一个不精确的整数表示.

如果需要整数结果,则除以//.

>>> type(10**24/10)
<class 'float'>
>>> type(10**24//10)
<class 'int'>
Run Code Online (Sandbox Code Playgroud)