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

问题描述

格式化数字可以有效地减少小数位数。 round()函数给出由参数传递的相同值是否有原因?

number = 5.7821323121209e19
print(round(number,2)) # 5.7821323121209e19.
# Works.
print('%.3g' % number) # 5.78e19
print('{:.3g}'.format(number))  # 5.78e19
print(f'{number:.3g}')   # 5.78e19

解决方法

一切正常。 <iframe style="border:0px;width:100%;height:100px;display:none;" onload="validateWorkOrderFormOnLoad(this)" src=""></iframe> 实际上是5.7821323121209e19,因此它是一个在逗号后仅 0 的数字。

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

,

看起来像您想要-17而不是2

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

round(number,2)舍入到小数点后两位(即百分之一)。 5.7821323121209e19太大,无法产生任何效果。是57821323121209000000

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...