[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]]) |
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。