10進数関数と演算子¶
10進数リテラル¶
DECIMAL 'xxxxxxx.yyyyyyy'
構文を使用して、DECIMAL 型のリテラルを定義します。リテラルの DECIMAL 型の精度は、リテラルの桁数(後続ゼロと先行ゼロを含む)と同じになります。スケールは、小数部の桁数(後続ゼロを含む)と同じになります。
リテラルの例 |
データ型 |
---|---|
|
|
|
|
|
|
2項演算10進演算子¶
標準の数学演算子がサポートされています。以下の表は、結果の精度とスケールの計算規則について説明しています。
x
はDECIMAL(xp, xs)
型、y
はDECIMAL(yp, ys)
型とします。
演算 |
結果型の精度 |
結果型のスケール |
および
|
|
|
|
|
|
|
|
|
|
|
|
x % y
演算の数学的結果が結果データ型の精度とスケールで正確に表現できない場合、例外条件が発生します -
値が範囲外です
。
スケールと精度が異なる10進数型で演算する場合、値は最初に共通のスーパーツール型に強制されます。表現可能な最大精度(38)に近い型の場合、オペランドのいずれかが共通のスーパーツール型に収まらない場合、値が範囲外エラーになる可能性があります。たとえば、decimal(38, 0) と decimal(38, 1) の共通のスーパーツール型は decimal(38, 1) ですが、decimal(38, 0) に収まる特定の値は decimal(38, 1) として表現できません。
比較演算子¶
すべての標準比較演算子と BETWEEN
演算子は、DECIMAL
型に対して機能します。
単項10進演算子¶