Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中正确地将非常小的数字从字符串转换为浮点?_Python_Python 2.7_Type Conversion_Precision_Maya - Fatal编程技术网

如何在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上运行良好。是的,感谢我对它进行了升级。