您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

对于大数,为什么整数除法和除法转换为int的结果不同?

对于大数,为什么整数除法和除法转换为int的结果不同?

的浮点表示10**40//2形式不正确:

>>> format(float(10**40//2), '.0f')
'5000000000000000151893014213501833445376'

那是因为浮点算法只是一种近似,尤其是当您超出了cpu可以准确建模的范围时(因为浮点是在硬件中处理的)。

整数除法10**40不必将数字表示为浮点数,它只需要除以整数即可,在Python中整数可以任意增大而不会造成精度损失。

另请参阅:

如果必须使用更高精度的浮点算法,也请查看decimal模块

其他 2022/1/1 18:25:59 有533人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶