Microsoft 製品に組み込まれている Visual Basic の実装。
> 「先頭円マーク + 数値」で表現されている文字列を、format関数を挟み、
> 3桁カンマ区切りにして揃えようとしているのですが、
> 戻り値として、先頭円マークが消えるというのが理解できません。
> format("\1000","#,##0") → 1,000
・第 2 引数 format において指定されている "#,##0" は、
数値データに対して適用される書式である。
・この時、第 1 引数 expression に渡された値が
「数値データとして評価できる文字列」である場合、
渡された値を暗黙的に数値型のデータに型変換した上、
上記の書式を適用した文字列を戻り値として返す。
・更にこの時、第 1 引数 expression に渡された文字列に
通貨記号が含まれていた場合、その記号を無視して
型変換が行なわれる。
・ここでの通貨記号とは、システムの[地域と言語]の設定において
通貨記号として設定されている文字のことである。
(日本語環境の場合、既定では円マーク()が設定されている)
例えば、システムで使用する通貨記号が "$" に変更されている環境において、
"\1000" という文字列を第 1 引数 expressionに渡した場合、
渡した文字列がそのまま Format 関数の戻り値として返されることになります。
(カンマ区切りになることもない)