如何在 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
如果我没瞎的话,输入和输出看起来是一样的。
我有这样一个号码:
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
如果我没瞎的话,输入和输出看起来是一样的。