ここには、文字列を小数に変換する方法を説明するトピックがたくさんありますが、小数を文字列に戻すにはどうすればよいですか?
私がこれをした場合のように:
import decimal
dec = decimal.Decimal('10.0')
(文字列)をどのように取り出しdec
て'10.0'
取り出すのですか?
文字列フォーマット関数を使用します。
>>> from decimal import Decimal
>>> d = Decimal("0.0000000000000123123")
>>> s = '{0:f}'.format(d)
>>> print(s)
0.0000000000000123123
数値を文字列に型キャストするだけでは、指数に対しては機能しません。
>>> str(d)
'1.23123E-14'
%f
文字列フォーマットを使用すると、最初に浮動小数点数に変換される(または限られた小数点以下の桁数のみが出力される)ように見えるため、精度が低下することに注意してください。%s
またはを使用str()
して、Decimalに格納されている完全な値を表示する必要があります。
与えられた:
from decimal import Decimal
foo = Decimal("23380.06198573179271708683473")
print("{0:f}".format(foo))
print("%s" % foo)
print("%f" % foo)
出力:
23380.06198573179271708683473
23380.06198573179271708683473
23380.061986
(ed:@Markのコメントを反映するように更新されました。)
import decimal
dec = decimal.Decimal('10.0')
string_dec = str(dec)
ほとんどすべての組み込みは、期待どおりにDecimalクラスで機能します。
>>> import decimal
>>> dec=decimal.Decimal('10.0')
文字列:
>>> str(dec)
'10.0'
フロート:
>>> float(dec)
10.0
int:
>>> int(dec)
10
オブジェクト表現(インタラクティブインタプリタの場合と同様):
>>> repr(dec)
"Decimal('10.0')"
有理数:
>>> import fractions
>>> fractions.Fraction(decimal.Decimal('0.50'))
Fraction(1, 2)