>>-COMPARE_DECFLOAT--(--expression1--,--expression2--)---------><
COMPARE_DECFLOAT 関数は、2 つの引数が等しいか順不同であるか、あるいは一方の引数が他方より大きいかどうかを示す SMALLINT 値を戻します。
- expression1
- 組み込み数値データ・タイプの値を戻す式。
引数が DECFLOAT(34) ではない場合、処理のために DECFLOAT(34) に論理的に変換されます。
- expression2
- 組み込み数値データ・タイプの値を戻す式。
引数が DECFLOAT(34) ではない場合、処理のために DECFLOAT(34) に論理的に変換されます。
expression1 の値は expression2 の値と比較され、以下の規則に従って結果が戻されます。
- 両方の引数が有限である場合、比較は代数的であり、10 進浮動小数点減算の手順に従います。差異がいずれかの符号のちょうどゼロである場合、2 つの引数は等価になります。 ゼロ以外の差異が正である場合、最初の引数は 2 番目の引数より大きくなります。ゼロ以外の差異が負である場合、最初の引数は 2 番目の引数より小さくなります。
- 正のゼロおよび負のゼロは等しいものとして比較されます。
- 正の無限大は、正の無限大と等しいものとして比較されます。
- 正の無限大は、すべての有限数値より大きいものとして比較されます。
- 負の無限大は、負の無限大と等しいものとして比較されます。
- 負の無限大は、すべての有限数値より小さいものとして比較されます。
- 数値比較は厳密に行われます。
結果は範囲と精度が無制限であるかのように、有限のオペランドに対して判別されます。オーバーフロー状態またはアンダーフロー状態が発生することはありません。
- どちらかの引数が NaN または sNaN (正または負) である場合、結果は順不同です。
結果値は、次のようになります。
- 0: 引数が厳密に等しい場合
- 1: expression1 が expression2 より小さい場合
- 2: expression1 が expression2 より大きい場合
- 3: 引数が順不同である場合
この関数の結果は SMALLINT 値となります。
引数のいずれかが NULL 値になる可能性がある場合、
結果も NULL 値になる可能性があります。
引数のいずれかが NULL 値の場合、その結果は NULL 値です。
例:
- 以下の例は、さまざまな 10 進浮動小数点値の入力を与えられた場合に COMPARE_DECFLOAT 関数によって戻される値を示しています。
COMPARE_DECFLOAT(DECFLOAT(2.17), DECFLOAT(2.17)) = 0
COMPARE_DECFLOAT(DECFLOAT(2.17), DECFLOAT(2.170)) = 2
COMPARE_DECFLOAT(DECFLOAT(2.170), DECFLOAT(2.17)) = 1
COMPARE_DECFLOAT(DECFLOAT(2.17), DECFLOAT(0.0)) = 2
COMPARE_DECFLOAT(INFINITY,INFINITY) = 0
COMPARE_DECFLOAT(INFINITY,-INFINITY) = 2
COMPARE_DECFLOAT(DECFLOAT(-2),INFINITY) = 1
COMPARE_DECFLOAT(NAN,NAN) = 3
COMPARE_DECFLOAT(DECFLOAT(-0.1),SNAN) = 3