如何在Python中正确地将非常小的数字从字符串转换为浮点?
我有一个这样的数字:如何在Python中正确地将非常小的数字从字符串转换为浮点?,python,python-2.7,type-conversion,precision,maya,Python,Python 2.7,Type Conversion,Precision,Maya,我有一个这样的数字: n = "0.000016495822225857" 但在使用以下方法将其转换为浮点后: num = float(n) 我得到: 1.64958e+13 我的数字小于1,如何正确转换它,以便对这些小于1的值进行四舍五入?但现在转换后,它大于1 这是因为浮点精度吗?不知道为什么会发生这种情况(很抱歉) 我所知道的是,您可以使用该模块作为解决方法 from decimal import Decimal n = "0.0000164958222
n = "0.000016495822225857"
但在使用以下方法将其转换为浮点后:
num = float(n)
我得到:
1.64958e+13
我的数字小于1,如何正确转换它,以便对这些小于1的值进行四舍五入?但现在转换后,它大于1
这是因为浮点精度吗?不知道为什么会发生这种情况(很抱歉) 我所知道的是,您可以使用该模块作为解决方法
from decimal import Decimal
n = "0.000016495822225857"
d = Decimal(n)
输出
0.000016495822225857
如果我不是盲人,输入和输出看起来是一样的。你是如何检查值是
1.64958e+13
<代码>打印(num)为我提供1.649582222557E-05
。你能举一个可复制的例子吗?看起来您只使用了0000164958222557
part。丢失小数点分隔符?我正在将值打印到控制台上,这就是我看到的结果,但我正在使用另一个名为Maya的应用程序中嵌入的python。无论如何,这不是精度问题,而是对stringRelated的错误解释:是否有2.7版本的代码?相同的代码似乎在2.7上运行良好。是的,感谢我对它进行了升级。