如何在 Python 中将非常小的数字从字符串正确转换为浮点数?

How to convert very small numbers from strings to floats properly in Python?

我有这样一个号码:

n = "0.000016495822225857"

但是在使用以下方法将其转换为浮点数之后:

num = float(n)

我得到:

1.64958e+13

我的数字小于1,如何正确转换才能将这些小于1的值四舍五入?但现在转换后,它大于 1。

这是因为浮点精度吗?

不知道为什么会这样(很抱歉)。

我所知道的是,您可以使用 decimal 模块作为解决方法。

from decimal import Decimal
n = "0.000016495822225857"
d = Decimal(n)

输出

0.000016495822225857

如果我没瞎的话,输入和输出看起来是一样的。