为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 round() 在指数数上不能按预期工作?

为什么 round() 在指数数上不能按预期工作?

犯罪嫌疑人X 2023-06-27 17:28:48
格式化数字可以有效并删除不需要的小数。该函数是否有理由round()给出与参数传递的相同值?number = 5.7821323121209e19print(round(number,2)) # 5.7821323121209e19.# Works.print('%.3g' % number) # 5.78e19print('{:.3g}'.format(number))  # 5.78e19print(f'{number:.3g}')   # 5.78e19
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

一切正常。5.7821323121209e19实际上是这样,它是一个逗号后面5.7821323121209 * (10 ** 19)只有0的数字。

因此,从数学的角度来看,没有什么可以舍入的。


查看完整回答
反对 回复 2023-06-27
?
墨色风雨

TA贡献1853条经验 获得超6个赞

看起来你想要-17而不是2

>>> round(5.7821323121208e19, -17)
5.78e+19


查看完整回答
反对 回复 2023-06-27
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

round(number, 2)四舍五入到小数点后两位(即百分之一)。5.7821323121209e19太大了,不会产生任何影响。是的57821323121209000000



查看完整回答
反对 回复 2023-06-27
  • 3 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信