LSNUMBERFORMAT  
説明

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

 
戻り値

形式設定された数値

  • マスクが指定されていない場合は、整数として形式設定された数値が返されます。
  • マスクが指定されていない場合は、小数部分が丸められます。たとえば、34.57 は 35 となります。
  • 指定されたマスクで数値を正しくマスクできない場合は、そのままの数値が返されます。
  • パラメータ値が "" (空の文字列) の場合、0 が返されます。
 
カテゴリ

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

 
関数のシンタックス
LSNumberFormat(number [, mask ])
 
関連項目

GetLocale、SetLocale、『ColdFusion MX 開発ガイド』の第17章の「グローバル化アプリケーションの開発」 の「ColdFusion MX でのデータ処理」

 
ヒストリ

ColdFusion MX:

  • 動作の変更 : 指定されたマスク形式で数値を正しくマスクできない場合は、そのままの数値が返されます。以前のリリースでは、数値が丸められるか、例外が発生していました。マスクが指定されていない場合、ColdFusion MX では ColdFusion 5 と同様に小数部分が丸められます。たとえば、1234.567 は 1235 となります。
  • 形式設定の動作の変更 : この関数では、以前のリリースと異なる形式で結果が返される場合があります。この関数では、すべてのプラットフォームで Java 標準のロケール形式設定ルールが使用されます。
 
パラメータ

次の表に、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>
NUMBER  
形式設定する数値です。
MASK  
LSNumberFormat マスク文字が適用されます。ただし、ドル記号 ($)、カンマ (,)、およびドット (.) は、対応するロケール固有の文字にマッピングされます。