8

注釈の数値を、現在の {x}E+{y} ではなく、{x}\cdot10^{y} のようにしたいと思います。これに適した文字列フォーマッタはありますか?

私にとって最も理想的な解決策は、'%.2e' のようなフォーマット文字列を使用することですが、10 のべき乗表現への自動変換が行われます。

4

3 に答える 3

1
def round_to_n(x, n):
    " Round x to n significant figures "
    return round(x, -int(py.floor(py.sign(x) * py.log10(abs(x)))) + n)

def str_fmt(x, n=2):
    " Format x into nice Latex rounding to n"
    power = int(py.log10(Round_To_n(x, 0)))
    f_SF = Round_To_n(x, n) * pow(10, -power)
    return r"${}\cdot 10^{}$".format(f_SF, power)

>>> x = 1203801.30201
>>> str_fmt(x)
$1.2\\cdot 10^6$

yこれをパラメータ化する方法には多くのバリエーションがあります。たとえば、自動的に生成するのではなく指数 ( ) を指定できますが、原則は同じです。

于 2013-08-19T11:42:45.447 に答える