Min と Max
許容最小値や許容最大値、またはその両方を指定できます。あるいは、一切指定なしでもかまいません。指定する場合、num 値 (丸め実行後) は、min 値以上、max 値以下でなければなりません。min または max 値として NULL 文字列を指定した場合、これは 0 に相当します。値がこの基準に合わない場合、$NUMBER は NULL 文字列を返します。
したがって、以下の例で 1 つ目は、num (4.0) が max (4) と同等なので、有効です。2 つ目の例も、num (4.003) が max (4) と形式範囲内 (小数点以下 2 桁) で同等なので、有効です。しかし 3 つ目の例は、$NUMBER が num を形式範囲内で maxより大きい値である (4.01) まで丸めを行ってしまうため、有効ではありません。その結果、NULL 文字列を返します。
WRITE !,$NUMBER(4.0,2,0,4)
WRITE !,$NUMBER(4.003,2,0,4)
WRITE !,$NUMBER(4.006,2,0,4)
コンマをプレースホルダとして保持し、引数を省略できます。以下の例で、1 行目は max 値を設定しますが、format または min の値は設定されません。2 行目では、format 値を設定しませんが、ゼロと等しい NULL 文字列の min 値を設定します。したがって、1 行目は -7 を返し、2 行目は min の基準を満たさないので、NULL 文字列を返します。
SET max=10
WRITE !,$NUMBER(-7,,,max)
WRITE !,$NUMBER(-7,,"",max)
末尾のコンマは指定できません。以下の結果は <SYNTAX> エラーになります。
WRITE $NUMBER(mynum,,min,)