我试图要求一个float变量,然后为其分配科学记号,然后在以下操作中使用该记号。如上所示,我希望程序实际使用该符号,而不只是返回其中的结果。
我设法通过使用打印功能来转换变量:
def estim(abs(x)):
a=print("{:.3e}".format(x))
return a
但是,这实际上并未将科学价值赋予x。然后我尝试
b=float(a)
但是a是None类型,因此它不起作用。有什么帮助吗?
编辑:用科学记数法表示X.YYYe + Z,
例如:31234.34234-> 3.12e + 04
python大神给出的解决方案
如果您执行"{:.3e}".format(x)
,您将在小数点后得到3位数字,即
>>> a = 31234.34234
>>> "{:.3e}".format(a)
'3.123e+04'
要获得所需的内容,您需要执行"{:.2e}".format(x)
。
>>> "{:.2e}".format(a)
'3.12e+04'
>>> float("{:.2e}".format(a))
31200.0
将其转换回float
将为您提供原始值
作为功能
def estim(x):
x = abs(x)
a=("{:.2e}".format(x))
print(a)
return a
小费:
您可以使用%
(可能已弃用)
>>> a = 31234.34234
>>> "%e"%a
'3.123434e+04'