我尝试在Python3.3中执行以下类型转换操作
int( 10**23 / 10 )
Output: 10000000000000000000000
在增加一倍或更多的能量之后
int( 10**24 / 10 )
Output: 99999999999999991611392
int( 10**25 / 10 )
Output: 999999999999999983222784
为什么会这样?虽然简单的排字
int( 10**24 )
Output: 1000000000000000000000000
不会影响值。在
Tags:
在Python3.x中,
/
总是执行真(浮点)除法。使用floor division//
可以得到预期的结果。在这种行为的原因是
float
不能精确地存储大整数。在假设使用IEEE-754双精度,它最多可以精确存储253整数,大约为1016。另一个例子:
^{pr2}$您正在使用/运算符执行浮点除法。10**24/10恰好有一个不精确的整数表示。在
如果需要整数结果,请用//除。在
相关问题 更多 >
编程相关推荐