0
私は浮動小数点数を特定の形式で印刷する必要があります。これは科学的表記法に非常によく似ています。 数字が-345.678の場合、科学的表記は-3.45678E2になりますが、代わりに-3445678D03を出力する必要があります。具体的には、小数点の左側に数字を入れることはできません。 Python 3でこれを行う方法はありますか?Python:科学的表記の一種
私は浮動小数点数を特定の形式で印刷する必要があります。これは科学的表記法に非常によく似ています。 数字が-345.678の場合、科学的表記は-3.45678E2になりますが、代わりに-3445678D03を出力する必要があります。具体的には、小数点の左側に数字を入れることはできません。 Python 3でこれを行う方法はありますか?Python:科学的表記の一種
私はあなたのフォーマットの完全な詳細のわからないんだけど、次は仕事に容易に修正作業どちらかでなければなりません:
from decimal import Decimal
def sci_str(dec):
return ('{:.' + str(len(dec.normalize().as_tuple().digits) - 1) + 'E}').format(dec)
def mod_sci_str(x):
s = sci_str(10*Decimal(str(x)))
s = s.replace('E+','D0')
s = s.replace('E-','D0-')
s = s.replace('.','')
if s.startswith('-'):
return '-.' + s[1:]
else:
return '.' + s
機能sci_str
が、この中に原因@MikeMに巧妙なユーティリティです例えば、質問
:
>>> mod_sci_str(-345.678)
'-.345678D03'
>>> mod_sci_str(345.678)
'.345678D03'
>>> mod_sci_str(0.0034)
'.34D0-2'