指定された形式で数値をフォーマットします。オプションで、指定された小数点に丸めます。
Synopsis
$FNUMBER(inumber,format,decimal)
$FN(inumber,format,decimal)
パラメータ
inumber フォーマットされる数。数値、数値変数名、数値に評価する有効な Caché ObjectScript 式を指定できます。
format 数をどのようにフォーマットするかという形式指定。0、または複数のフォーマット・コードから構成される文字列です。
decimal オプション — 返される数に含まれる小数桁数
概要
$FNUMBER は、指定された format で、inumber により指定される数値を返します。
パラメータ
format
利用可能な形式コードは、以下の通りです。単独でも、組み合わせても指定できます。
コード 説明
+ 現在の位置の PlusSign プロパティを接頭語とした非負数を返します (既定は “+”)。数が負のとき、現在の位置の MinusSign プロパティを接頭語とした非負数を返します (既定は “-”)。
- 現在の位置の MinusSign プロパティを接頭語として使用せずに、負の数を返します。それ以外は、符号を前に付けずに数を返します。
, 現在のプロパティ (既定は “,”) を小数点の左側にある整数に NumericGroupSize (既定は 3) ごとに 入れた数値を返します。“.” と “,” を組み合わせた形式は、<FUNCTION> エラーになります。
. 常にヨーロッパ形式の数字を返します。“.” と “,” を組み合わせた形式は、<FUNCTION> エラーになります。
T 後に符号が続く数を返すか、あるいは接頭語が生成されます。しかし、必ずしも符号が付くわけではありません。非負数の後に符号を加えるときは、“+” も指定します。負の値の後に符号を加えるときは、“-” を指定しません。使用される符号は、それぞれの現在の位置の PlusSign プロパティと MinusSign プロパティで決まります。末尾スペース文字があるのに符号がないときは、“+” が省略されている非負数、あるいは “-” を指定した負の数の場合です。
P MinusSign プロパティ値をつけずに、負の数を括弧付きで返します。その他の数は、括弧を付けずにスペースを両側に配置して返します。この形式は、他の形式と一緒に使用することはできません。
形式コードの組み合わせによっては、衝突したり <SYNTAX> エラーになります。例えば、負の数で “TP” が末尾の符号を挿入し、括弧に数を配置しようと試みた場合などです。
decimal
数が切り捨てられたり、0 が埋められる前に丸めを行います。正の数、整変数名、正の数に評価するすべての有効な Caché ObjectScript 式で指定されます。decimal パラメータが 0 のとき、数は小数点をもたない整数として返されます。decimal パラメータが小数桁数よりも大きいとき、0 を加えます。数が 1 以下のとき、$FNUMBER は小数点の前に 0 を加えます。
decimal オプションを使用すると、数の丸めを行った後に返す少数桁の数を制御できます。decimal パラメータは、整数として解釈する必要があります。例えば、変数 c に数値 6.25198 が含まれているとします。
   SET c="6.25198"
   SET x=$FNUMBER(c,"+",3)
   SET y=$FNUMBER(c,"+",8)
   WRITE !,x,!,y
最初の $FNUMBER は +6.252 を、2 番目は +6.25198000 を返します。decimal パラメータが数の小数桁数を越えるときは、0 を加えます。
以下の例は、異なる形式を指定すると、どのように $FNUMBER の動作に影響するかを示しています。これらの例は、現在の位置が既定であると仮定した場合です。
以下の例は、A が非負数なので、$FNUMBERA の値にプラス符号を加えて、+124329 を返しています。
   SET A=124329
   WRITE $FNUMBER(A,"+")
以下の例では、$FNUMBERB の値から負の符号を削除して、30.567 を返しています。
   SET B=-30.567
   WRITE $FNUMBER(B,"-")
以下の例では、$FNUMBERC の小数点の左側の数値 3 桁ごとにコンマを挿入して、1,234,567.81 を返しています。
   SET C=1234567.81
   WRITE $FNUMBER(C,",")
以下の例では、$FNUMBERC にヨーロッパ形式を挿入して、1.234.567,81 を返しています。
   SET D=1234567.81
   WRITE $FNUMBER(D,".")
以下の例では、$FNUMBER がコンマを挿入して、C の値に小数点と 0 を 2 つ加えて、124,329.00を返しています。
    SET C=124329
    WRITE $FNUMBER(C,",",2)
以下の例は、$FNUMBER が変数の後にどのように符号を挿入するかを示しています。
   SET A=123
   SET B=-123
   SET x=$FNUMBER(A,"T+")
   SET y=$FNUMBER(B,"T")
   SET z=$FNUMBER(A,"T")
   WRITE !,x,!,y
   WRITE !,z,"space after var z"
123+
123–
123 var z の後にスペース
以下の例では、$FNUMBERB の値を括弧に入れ、マイナス符号を削除して、(30.567) を返しています。
   SET B=-30.567
   WRITE $FNUMBER(B,"P")
メモ
小数区切り文字
$FNUMBER は、数の全体と小数部分の間に区切り文字として、現在の位置の DecimalSeparator プロパティの値を使用します (“.” 形式コードが使用される場合を除きます)。DecimalSeparator の既定値は “.” で、この区切り文字はこのドキュメント全体を通して使用されています。
関連項目