web-dev-qa-db-ja.com

Python Decimal to String

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

私がこれをやったように:

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

decを取得して'10.0'(文字列)出力?

36
gfrung4

str() builtin を使用します。

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

例えば:

>>> import decimal
>>> dec = decimal.Decimal('10.0')
>>> str(dec)
'10.0'
50
Gareth Latty

文字列形式関数を使用します。

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

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

>>> str(d)
'1.23123E-14' 
28
Matthew Roberts
import decimal
dec = decimal.Decimal('10.0')
string_dec = str(dec)
4
mVChr

ほぼすべてのビルトインは、予想どおり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)
4
dawg

_%f_文字列フォーマットを使用すると、最初にfloatに変換されるように見える(または小数点以下の桁数が制限される)ため、精度が低下することに注意してください。 _%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のコメントを反映するために更新されました。)

1
Ryan