Python,如何四舍五入到最大精度

Python, How to round up to maximum precision

这实际上是一个非常简单的问题,假设我有这个数字 1.499998499999999e-98,现在如果我想将它四舍五入到 ~1.5e-98,我将如何处理?我尝试了 round() 但它给了我 0.0 这对我正在做的事情有点无用。

您可以指定要四舍五入的位数 (see the documentation),并阅读有关四舍五入令人惊讶的注释。

Numpy may give you a little more control over rounding.

一种(有点'hacky')方法是将数字格式化为字符串并转换回浮点数:

>>> x = 1.499998499999999e-98
>>> "%.2e" % x
'1.50e-98'
>>> float("%.2e" % x)
1.5e-98

除了使用 round,这将四舍五入到 重要 位数,而不是 "absolute" 位数。