| [value [, context]]) |
value は整数、文字列、タプル、および他の Decimal
オブジェクトにできます。value を指定しない場合、
Decimal("0") を返します。 value が文字列の場合、
以下の 10 進数文字列の文法に従わねばなりません:
sign ::= '+' | '-'
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
indicator ::= 'e' | 'E'
digits ::= digit [digit]...
decimal-part ::= digits '.' [digits] | ['.'] digits
exponent-part ::= indicator [sign] digits
infinity ::= 'Infinity' | 'Inf'
nan ::= 'NaN' [digits] | 'sNaN' [digits]
numeric-value ::= decimal-part [exponent-part] | infinity
numeric-string ::= [sign] numeric-value | [sign] nan
value を tuple にする場合、タプルは三つの要素を持ち、
それぞれ符号 (正なら0、負なら 1)、仮数部を
表す数字のタプル、そして指数を表す整数でなければなりません。
例えば、"Decimal((0, (1, 4, 1, 4), -3))" は
Decimal("1.414") を返します。
context に指定した精度 (precision) は、オブジェクトが記憶する 桁数には影響しません。桁数は value に指定した桁数だけから 決定されます。例えば、演算コンテキストに指定された精度が 3 桁しかなくても、 "Decimal("3.00000")" は 5 つのゼロを全て記憶します。
context 引数の目的は、value が正しくない形式の文字列 であった場合に行う処理を決めることにあります; 演算コンテキストがInvalidOperation をトラップするように なっていれば、例外を送出します。それ以外の場合には、コンストラクタは 値がNaN のDecimal を返します。
一度生成すると、Decimal オブジェクトは変更不能 (immutable) になります。
10 進浮動小数点オブジェクトは、float やint のような 他の組み込み型と多くの点で似ています。通常の数学演算や特殊メソッドを 適用できます。また、Decimal オブジェクトは コピーでき、pickle 化でき、print で出力でき、辞書のキーにでき、 集合の要素にでき、比較、保存、他の型 (float やlong) への型強制を行えます。
こうした標準的な数値型の特性の他に、10進浮動小数点オブジェクトには 様々な特殊メソッドがあります:
| ) |
Decimal("321e+5").adjusted() なら 7 です。
最上桁の小数点からの相対位置を調べる際に使います。
| ) |
| other[, context]) |
a or b is a NaN ==> Decimal("NaN")
a < b ==> Decimal("-1")
a == b ==> Decimal("0")
a > b ==> Decimal("1")
| other[, context]) |
| other[, context]) |
| [context]) |
Decimal("32.100") と Decimal("0.321000e+2")
の正規化は、いずれも同じ値 Decimal("32.1") になります。
| exp [, rounding[, context[, watchexp]]]) |
watchexp が (default) に設定されている場合、処理結果の指数 が Emax よりも大きい場合や Etiny よりも小さい 場合にエラーを返します。
| other[, context]) |
Decimal("4") よりもゼロに近い値 Decimal("-2")
を返します。
ゼロからの差が同じ場合には、 self と同じ符号を持った方を 返します。
| other[, context]) |
| [context]) |
| [context]) |
工学表記では指数は 3 の倍数になります。従って、
最大で 3 桁までの数字が基数の小数部に現れます。たとえば、
Decimal('123E+1') は Decimal("1.23E+3")
に変換されます。
| [rounding[, context]]) |
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。