-1
私は15.579という数字を持っています。私は0.15790000E + 02を書くためにそれをフォーマットしたいと思います。 私はそれを1.57900000E + 01として表示することができますが、小数点の前に0を設定します。 Pythonでどうすればいいですか?Pythonで浮動小数点数をフォーマットする方法は?
私は15.579という数字を持っています。私は0.15790000E + 02を書くためにそれをフォーマットしたいと思います。 私はそれを1.57900000E + 01として表示することができますが、小数点の前に0を設定します。 Pythonでどうすればいいですか?Pythonで浮動小数点数をフォーマットする方法は?
これは動作するはずです。これは、負の数と奇妙な結果をチェックします。私もPythonのデフォルトの精度を使用し、それを小数点文字と同様に変更可能にしました。ここでは、8桁の数字をしたい場合は、簡単にあなたの例のように、デフォルトの精度を変更することができますが、Pythonのデフォルトは6
def alt_sci_notation(x, prec=6, decpt='.'):
"""Return a string of a floating point number formatted in
alternate scientific notation. The significand (mantissa) is to be
between 0.1 and 1, not including 1--i.e. the decimal point is
before the first digit. The number of digits after the decimal
point, which is also the number of significant digits, is 6 by
default and must be a positive integer. The decimal point character
can also be changed.
"""
# Get regular scientific notation with the new exponent
s = '{0:.{p}E}'.format(10 * x, p=prec-1)
# Handle negative values
prefix = ''
if s[0] == '-':
prefix = s[0]
s = s[1:]
# Return the string after moving the decimal point
if prec > 1: # if a decimal point exists in thesignificand
return prefix + '0' + decpt + s[0] + s[2:]
else: # no decimal point, just one digit in the significand
return prefix + '0' + decpt + s
あるiPythonのサンプルの結果があります。
alt_sci_notation(15.579, 8)
Out[2]: '0.15579000E+02'
alt_sci_notation(-15.579, 8)
Out[3]: '-0.15579000E+02'
alt_sci_notation(0)
Out[4]: '0.000000E+00'
alt_sci_notation(100000000)
Out[5]: '0.100000E+09'
alt_sci_notation(.00000001)
Out[6]: '0.100000E-07'
@ChandaKorat:この1つは仮数(仮数)は0.1と1の間にある非標準のフォームがので、この重複はないたいながら「可能重複」は、標準的な科学的表記法を希望していること - このけれども質問には他の問題があるかもしれません。 –
質問を理解してくれたRoryに感謝します。どうか、これで私を助けてくれますか? –
表示したい小数点以下の桁数はいくつですか?それは一貫しているのでしょうか、それともパラメータとして望みますか?そして、今は行く必要があり、今日の午後(7時間後)までは答えられません。 –