数値フォーマット文字列
数値フォーマット文字列
フォーマット文字列は、文字列から数値、および数値から文字列への変換のテンプレートとして使用されます。フォーマット文字列 fmt では以下の要素を組み合わせて、NumberToString における数値から文字列の生成、または StringToNumber における文字列から数値の生成に使用します。
要素 | 値 |
---|---|
9 | 各 9 は、表示する有効桁数を表します。数値の前のゼロは表示されるか、空白として処理されます。データに対して十分な有効桁数を指定する必要があります。例えば、データが最大 5 桁である場合、フォーマット文字列の有効桁数は少なくとも 5 桁でなければなりません。 |
0 | 各 0 は、有効桁数を表します。数値の前のゼロは表示されるか、ゼロとして処理されます。 |
$ | 接頭文字: 数値の前に $ (ドル記号) を付けます。他の通貨記号については、要素 L を参照してください。 |
, (カンマ) | 数値文字列の中のカンマを表します。カンマは必ず、桁区切り文字として解釈されます。他の桁区切り文字については、要素 G を参照してください。 |
.(ピリオド) | 数値文字列の中の小数点を表します。他の小数点文字については、要素 D を参照してください。 |
MI | 接尾文字: 数値が負の場合は、末尾にマイナス符号を付け、正の場合は空白を付けます。 |
S | 接頭文字または設備文字: 正数の前にプラス (+) 符号を付け、負数の前にマイナス (-) 符号を付けます。 |
D | 小数点の位置を指定します。D の左側のフォーマット要素はすべて、数値の整数部分の書式を設定するためのものです。D の右側のフォーマット要素はすべて、数値の小数部分の書式を設定するためのものです。小数点を表す文字は、プラットフォームごとに定められています。MapInfo.NET では、現在のスレッドの Culture 設定によってこの値が決まります。Spatialware または Envinsa では、データベース (初期化パラメータである場合が多い) によってこの値が決まります。 |
G | 桁区切り文字 (6,234 における千の位ごとのカンマなど) の位置を指定します。小数点を表す文字 D と同様に、桁区切り文字はプラットフォームごとに定められています。 |
L | その地域の通貨記号 ($ など) の位置を指定します。小数点を表す文字 D と同様に、桁区切り文字はプラットフォームごとに定められています。 |
E E- E+ |
数値が科学的記数法で表記されることを表します。要素 E の後にある 9 または 0 は、指数部に対するフォーマット文字であると解釈されます。要素 E の後に、小数点や桁区切り文字を配置することはできません。プラス (+) 符号またはマイナス (-) 符号は、要素 E の直後に配置することができます。要素 E の後に、プラス (+) 符号またはマイナス (-) 符号を明示的に指定する場合、正の指数部にはプラス (+) 符号、負の指数部にはマイナス (-) 符号が必ず表示されることになります。要素 E の後に符号が指定されず、指数部が負である場合は、要素 E の直後にマイナス符号が表示されます。そのため、要素 E の直後の 9 または 0 の数は、指数部が負である場合に、マイナス符号を入れても表示できるだけの幅である必要があります (そうでなければ桁あふれが生じてしまいます)。 |
数値フォーマット文字列の使用例
数値の書式設定や文字列のパースを行うための数値フォーマット要素の使用例を以下に示します。空白 (スペース) の存在がわかるように、結果を引用符で囲んで示しています。引用符自体は、結果には含まれません。
NumberToString(123.4567, '999999.99') : ' 123.46'
NumberToString(123.4567, '099999.99') : '000123.46'
NumberToString(1234567, '99,999,999') : ' 1,234,567'
NumberToString(1234567, '9,999,999,999') : ' 1,234,567'
NumberToString(1234567, '0,999,999,999') : '0,001,234,567'
NumberToString(123.4567, '0.9999E99') : '1.2346E 2'
NumberToString(123.4567, '0.9999E09') : '1.2346E02'
NumberToString(123.4567, '0.9999E+09') : '1.2346E+02'
NumberToString(12.345, '9.99') : '#.##'
StringToNumber('123456', '99999') : Error
StringToNumber(' 123.456', '9999.999') : 123.456
StringToNumber(' 123.456-', '9999.999') : Error
StringToNumber(' 123.456-', '9999.999MI') : -123.456
StringToNumber('1,234.56', '999,999.99') : 1234.56
StringToNumber('1,234.56', '999,999.9') : 1234.5