ColdFusion MX
目 次 > CFML リファレンス > ColdFusion 関数 > LSNumberFormat O

LSNumberFormat

ロケール固有の形式を使用して、数値を形式設定します。

形式設定された数値

表示および書式制御関数各国語対応関数

LSNumberFormat(number [, mask ])

GetLocaleSetLocale

ColdFusion MX:

パラメータ

説明

number

形式設定する数値です。

mask

LSNumberFormat マスク文字が適用されます。ただし、ドル記号 ($)、カンマ (,)、およびドット (.) は、対応するロケール固有の文字にマッピングされます。

次の表に、LSNumberFormat マスク文字のリストを示します。

文字

意味

_

(アンダースコア) 数値のプレースホルダーです。

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) "

日付、時刻、数値、および通貨の値のデフォルトの表示形式を設定するには、SetLocale 関数を使用します。

文字列を double 型の数値に変換するとき、この関数では、四捨五入による誤差を防ぐため、変換後の数値に四捨五入係数 1.5543122344752E-014 を加算します。たとえば、四捨五入係数を追加しないで、文字列値 1.275 を小数点以下 2 桁の double 値に変換すると、値は 1.27499999999999999 となり、1.27 に四捨五入されます。四捨五入係数を加えることにより、正しく変換が行われ、結果は 1.28 となります。

ただし、1.99499999999999999999999999999 のように 10E-14 の桁まで使用されている double 値の場合、四捨五入係数が加算されることで、誤った四捨五入の結果が生じる可能性があります。

<h3>LSNumberFormat の例</h3>
<p>LSNumberFormat はロケール表記規則を使用して数値を返します。 
<!--- ロケールのリスト全体をループし、数値を表示します。--->
<cfloop LIST = "#Server.Coldfusion.SupportedLocales#"
index = "locale" delimiters = ",">
   <cfset oldlocale = SetLocale(locale)>
   <cfoutput><p><b><i>#locale#</i></b><br>
      #LSNumberFormat(-1234.5678, "_________")#<br>
      #LSNumberFormat(-1234.5678, "_________.___")#<br>
      #LSNumberFormat(1234.5678, "_________")#<br>
      #LSNumberFormat(1234.5678, "_________.___")#<br>      
      #LSNumberFormat(1234.5678, "$_(_________.___)")#<br>      
      #LSNumberFormat(-1234.5678, "$_(_________.___)")#<br>      
      #LSNumberFormat(1234.5678, "+_________.___")#<br>      
      #LSNumberFormat(1234.5678, "-_________.___")#<br>      
   </cfoutput>
</cfloop>

目 次 > CFML リファレンス > ColdFusion 関数 > LSNumberFormat O