在Python Decimal中使用数字浮点格式

在Python Decimal中使用数字浮点格式,python,dictionary,floating-point,decimal,typeerror,Python,Dictionary,Floating Point,Decimal,Typeerror,我正在编写一个代码,在那里我得到以下形式的数据: “代码>k=”k=

我正在编写一个代码,在那里我得到以下形式的数据:

“代码>k=”<代码>k=<<<<公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司公司员工员工员工员工员工:::::::::'''''''''''''''''''''''''''''''''''''']

当我写作的时候

float(k[0]['unitweight'])
应将其转换为浮点数。但这是给予

TypeError: float() argument must be a string or a number TypeError:float()参数必须是字符串或数字 正如所料。我感到困惑,因为数据的形式与python Decimal模块中实现的形式相同。是否有任何方法(一行)可以将数据转换为浮点格式

这可能有同样的问题。也请查看。

拿着这个:

d = {'_exp': -3, '_is_special': False, '_int': '3000', '_sign': 0}
用于:

你可以这样做:

import math  
math.copysign(int(d['_int']) ** d['_exp'], d['_sign'] * -1)
结果:

3.7037037037037036e-11

不知道什么是“特殊”的意思。

是“特殊”
不是十进制的属性,我想它是数字的属性。检查属性错误,这也显示了python代码中的修改。+1除了复制符号外是错误的,因为值是
0
1
,加和减是什么?0:正,1:负?
1
表示符号设置为负,而
0
表示符号未设置为正。您只需使用
-2*符号+1
即可获得
1
-1
,具体取决于符号。或者更易读的东西,如
-1 if sign else 1
谢谢。我自己刚刚算出来,正在看
decimal.decimal
。并修改了解决方案。是否为此转换定义了内置函数?或者我需要像@MikeMüller那样对这些东西进行编码。
3.7037037037037036e-11