| ColdFusion MX | ||
| 目 次 > CFML リファレンス > ColdFusion 関数 > NumberFormat |
|
|
|
|
||
独自に形式設定した数値を作成します。米国で使用される数値形式をサポートします。国際数値形式については、LSNumberFormat を参照してください。
形式設定された数値
NumberFormat(number[,mask])
DecimalFormat、DollarFormat、IsNumeric、LSNumberFormat
ColdFusion MX: 動作の変更 : 指定されたマスク形式で数値を正しくマスクできない場合は、そのままの数値が返されます(数値が丸められたり、エラーが発生したりすることはありません)。マスクが選択されていない場合、ColdFusion MX では ColdFusion 5 と同様に小数部分が丸められます。たとえば、34.567 は 35 となります。
パラメータ |
説明 |
|---|---|
number |
数値。 |
mask |
文字列、または文字列を含んでいる変数です。数値の表示方法を指定する文字のセットです。 |
次の表でマスク文字を解説します。
マスク文字 |
意味 |
|---|---|
アンダースコア (_) |
オプションです。数値のプレースホルダーです。 |
9 |
オプションです。数値のプレースホルダーです。_ よりも明確に小数点の位置を示します。 |
. |
この位置に小数点を固定します。 |
0 |
固定した小数点の左または右に置いて、0 でパディングすることを示します。 |
( ) |
数値が 0 よりも小さい場合は、マスクを丸括弧で囲みます。 |
+ |
正の数の前にプラス記号 (+) を付け、負の数の前にマイナス記号 (-) を付けます。 |
- |
正の数の前にスペースを付け、負の数の前にマイナス記号 (-) を付けます。 |
, |
3 桁ごとにカンマで区切ります。 |
L、C |
マスク列の中で数値を左揃えまたは中央揃えにします。L または C はマスクの先頭に指定する必要があります。デフォルトは右揃えです。 |
$ |
形式設定された数値の先頭にドル記号を置きます。ドル記号 ($) はマスクの先頭に指定する必要があります。 |
^ |
右側の形式と左側の形式を区切ります。 |
メモ: マスクで符号が指定されていない場合は、正の数値と負の数値の桁位置が揃いません。正の数値の前にプラス記号またはスペースを付け、負の数の前にマイナス記号を付けるには、プラス記号またはマイナス記号のマスク文字をそれぞれ使用します。
この関数では、すべてのプラットフォームで Java 標準のロケール形式設定ルールが使用されます。
形式マスク内の記号の位置によって、これらのコードが作用する位置は異なります。たとえば、ドル記号を形式マスクの完全な左端に配置すると、形式設定された数値のフィールド全体の左端にドル記号が表示されます。形式マスクの左端とドル記号の間に 1 つまたは複数のアンダースコアを置くと、形式設定された数値のフィールド内で、数字のすぐ左に隣接してドル記号が表示されます。
次の例は、記号の位置がどのように形式設定に影響するかを示しています。
数値 |
マスク |
結果 |
|---|---|---|
4.37 |
$____.__ |
"$ 4.37" |
4.37 |
_$___.__ |
" $4.37" |
同様に、負の数値にマイナス記号 (-) を表示する位置も次のように指定できます。
数値 |
マスク |
結果 |
|---|---|---|
-4.37 |
-____.__ |
"- 4.37" |
-4.37 |
_-___.__ |
" -4.37" |
記号の位置は、左端、左隣、右隣、および右端です。左右の位置は、コード文字が表示される小数点の位置によって決まります。小数点以下の桁数が固定されていない形式の場合は、カレット (^) を使用して左右のフィールドを区切ることができます。
コードを離れた位置に置くか、隣接した位置に置くかは、アンダースコア (_) によって決まります。ほとんどのコード文字は、いずれのフィールドに置くかによって効果が異なります。次の例は、負の数値を表示するための括弧を置く位置を指定する方法を示しています。
数値 |
マスク |
結果 |
|---|---|---|
3.21 |
C(__^__) |
"( 3.21 )" |
3.21 |
C__(^__) |
" (3.21 )" |
3.21 |
C(__^)__ |
"( 3.21) " |
3.21 |
C__(^)__ |
" (3.21) " |
文字列を double 型の数値に変換するとき、この関数では、四捨五入による誤差を防ぐため、変換後の数値に四捨五入係数 1.5543122344752E-014 を加算します。たとえば、四捨五入係数を追加しないで、文字列値 1.275 を小数点以下 2 桁の double 値に変換すると、値は 1.27499999999999999 となり、1.27 に四捨五入されます。四捨五入係数を加えることにより、正しく変換が行われ、結果は 1.28 となります。
ただし、1.99499999999999999999999999999 のように 10E-14 の桁まで使用されている double 値の場合、四捨五入係数が加算されることで、誤った四捨五入の結果が生じる可能性があります。
日付、時刻、数値、および通貨の値のデフォルトの表示形式を設定するには、SetLocale 関数を使用します。
<h3>NumberFormat の例</h3> <cfloop FROM = 1000 TO = 1020 INDEX = "counter"> <cfset CounterRoot2 = counter * sqr(2)> <!--- デフォルト形式 (3 桁ごとにカンマを付ける形式) と、
小数点以下 2 桁までのカスタム形式で結果を表示 ---> <cfoutput> <pre>#counter# * (2 の平方根):#NumberFormat(CounterRoot2, '_____.__')#</pre> <pre>#counter# * (2 の平方根):#NumberFormat(CounterRoot2)#</pre> </cfoutput> </cfloop>
|
|
||
| 目 次 > CFML リファレンス > ColdFusion 関数 > NumberFormat |
|
|