1

Pythonで64ビット浮動小数点数の印刷を制御するための最良の方法は何ですか?

指定子を使用して、%eすべての数値を指数形式で簡単に表示できます。ただし、数値にx桁を超える桁が含まれている場合にのみ、指数形式を使用したいと思います。たとえば、以下は生の64ビット浮動小数点数と文字列としてどのように表示したいかです。

value       what's printed

1.123456    1.123456
123456.1234 12345.6e4
1.0         1.0
.1234567    1.23456e-1

上記では、合計7桁のみを表示し、さらに必要な場合は指数表記に変換したいと思います。

これは意味がありますか?基本的に、数値のしきい値に達した場合にのみ指数表記を使用できるようにしたいと思います。私は次%eのような指定子を許可することを知っています%.3eが、これは数値のサイズに関係なく常に指数表記を使用します。

4

2 に答える 2

1

あなたはおそらく-で何かを調理することができます-それはまたは'%g'の短い方を使用します:%f%e

>>> '%.4g'%(1154.2)
'1154'
>>> '%.4g'%(11545.2)
'1.155e+04'
>>> '%.4g'%(1.15452)
'1.155'
>>> '%.4g'%(0.000005321)
'5.321e-06'

つまり、有効数字4桁の数値を出力し、必要に応じて科学的記数法を使用します。

于 2012-10-31T18:44:39.430 に答える
1

私は次のようなことができると思います:

>>> def pretty_float(val):
...   if len(repr(val)) > 7:
...     return '%e' % val
...   else:
...     return repr(val)
... 
于 2012-10-31T18:52:55.557 に答える