python e+23中的舍入浮点

2024-04-24 08:43:51 发布

您现在位置:Python中文网/ 问答频道 /正文

浮点数如下:

6.07345232904e+23

我怎样才能把它转换成小数点后两位?你知道吗

我试过round()
但它不起作用。你知道吗


Tags: 浮点数小数点round
2条回答

不能。该值约为607345232904000000000000,已经有两个以上的小数位。如果希望表示法有两个小数位,则必须指定该小数位。你知道吗

>>> '{:.3g}'.format(6.07345232904e+23)
'6.07e+23'

要回答您对实际要做什么的澄清,即以给定精度比较两个数字:

有不同的方法可以做到这一点,这取决于你的标准是什么。最简单的解决办法是

abs(a-b) <= tolerance

如果您使用的是python3.5,那么可以使用math.isclose。对于早期版本,这在功能上应该是等效的

def isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0):
  return abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)

如果你真的需要处理所有的角落案件,你将不得不some additional work。你知道吗

相关问题 更多 >