的浮点表示
10**40//2形式不正确:
>>> format(float(10**40//2), '.0f')'5000000000000000151893014213501833445376'
那是因为浮点算法只是一种近似,尤其是当您超出了CPU可以准确建模的范围时(因为浮点是在硬件中处理的)。
整数除法
10**40不必将数字表示为浮点数,它只需要除以整数即可,在Python中整数可以任意增大而不会造成精度损失。
另请参阅:
- 浮点算法: Python教程中的 问题和局限性
- 每个程序员应了解的浮点运算法则
- 每个计算机科学家都应了解的浮点运算法则
如果必须使用更高精度的浮点算法,也请查看
decimal模块。



