【问题标题】:Assign scientific notation to variable in Python在 Python 中为变量分配科学记数法
【发布时间】:2015-01-29 19:36:47
【问题描述】:

我试图请求一个浮点变量,然后将其科学记数法分配给它,然后在以下操作中使用该记数法。如,我希望程序实际使用符号,而不仅仅是返回结果。 我设法使用打印功能转换变量:

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

【问题讨论】:

  • 好吧,你的代码没有意义。也许,a="{:.3e}".format(x) 会起作用?
  • 在 Python floats 内部不能使用“十进制表示法”或“科学表示法”。这些只是输出格式。 “使用符号”是什么意思?
  • 我的意思是,程序不会理解 44432.12,而是将其视为 4.44*10^4,例如,实际上是 44400。@ForceBru 的建议似乎有效,谢谢。
  • @L.R. 31234.34234 -> 3.12e+04 ... 你需要a="{:.2e}".format(x) 而不是a="{:.3e}".format(x)。 (现在不要编辑)
  • 你想用这个号码做什么?科学记数法是一种显示数字的方法。它不会改变数字是什么。因此,如果您真正想要的是使用它的字符串表示,那么“使用科学记数法中的数字”才有意义。

标签: python scientific-notation


【解决方案1】:

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

这是一个例子

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

输出

2.468e+05
246800.0

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 您提供的estim 函数的代码不起作用:“SyntaxError: invalid syntax。”
    【解决方案3】:

    打印的返回值始终为 None 我怀疑您需要的更多是:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2019-04-15
      • 2017-09-05
      • 1970-01-01
      相关资源
      最近更新 更多