在Python中为变量指定科学记数法

时间:2015-01-29 19:36:47

标签: python scientific-notation

我正在尝试请求一个浮点变量,然后将其科学记数法分配给它,然后在以下操作中使用该表示法。就像在,我希望程序实际上使用符号,而不仅仅是返回结果。 我设法通过使用print函数转换变量:

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

3 个答案:

答案 0 :(得分:3)

您需要使用a="{:.3e}".format(x)

这是一个例子

x=246789;
a="{:.3e}".format(x);
print a;
print float(a);

输出

2.468e+05
246800.0

答案 1 :(得分:1)

如果你"{:.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'

答案 2 :(得分:1)

打印的返回值始终为无我怀疑您需要的更多内容如下:

def estim(x):
    a="{:.3e}".format(abs(x))
    print a
    return a