的浮点表示10**40//2
形式不正确:
>>> format(float(10**40//2), '.0f')
'5000000000000000151893014213501833445376'
那是因为浮点算法只是一种近似,尤其是当您超出了cpu可以准确建模的范围时(因为浮点是在硬件中处理的)。
整数除法10**40
不必将数字表示为浮点数,它只需要除以整数即可,在Python中整数可以任意增大而不会造成精度损失。
另请参阅:
如果必须使用更高精度的浮点算法,也请查看decimal
模块。