48

ここには、文字列を小数に変換する方法を説明するトピックがたくさんありますが、小数を文字列に戻すにはどうすればよいですか?

私がこれをした場合のように:

import decimal
dec = decimal.Decimal('10.0')

(文字列)をどのように取り出しdec'10.0'取り出すのですか?

4

5 に答える 5

71

ビルトインを使用str()ます。

オブジェクトの適切に印刷可能な表現を含む文字列を返します。

例えば:

>>> import decimal
>>> dec = decimal.Decimal('10.0')
>>> str(dec)
'10.0'
于 2012-06-19T00:51:32.700 に答える
39

文字列フォーマット関数を使用します。

>>> from decimal import Decimal
>>> d = Decimal("0.0000000000000123123")
>>> s = '{0:f}'.format(d)
>>> print(s)
0.0000000000000123123

数値を文字列に型キャストするだけでは、指数に対しては機能しません。

>>> str(d)
'1.23123E-14' 
于 2014-11-21T03:41:55.487 に答える
6

%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のコメントを反映するように更新されました。)

于 2018-10-24T22:02:37.363 に答える
4
import decimal
dec = decimal.Decimal('10.0')
string_dec = str(dec)
于 2012-06-19T00:51:45.860 に答える
4

ほとんどすべての組み込みは、期待どおりに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)
于 2012-06-19T01:44:48.583 に答える