|
.NET TIPS 数値を3けた区切りの文字列に変換するには?[C#、VB]デジタルアドバンテージ 一色 政彦2007/07/19 |
![]() |
|
|
|
金額や容量(例:バイト数)など、桁(けた)数が長い数値を画面に表示したり、印刷したりする場合、単位が判別しやすくなるように、3桁単位で区切り文字「,」を挿入することが多々ある。例えば「1234567」という数値は、次のように3桁ごとに区切られる。
1,234,567
.NETプログラミングで数値をこのような3桁区切りの文字列に変換するには、Stringクラス(System名前空間)の静的メソッドFormatを利用すると簡単だ。具体的には、次のようにしてString.Formatメソッドを呼び出す。
String.Format("{0:#,0} バイト", 1234567)
メソッドの第2パラメータに指定している「1234567」は変換前の数値である。実際にはここに任意の数値を指定する。
第1パラメータに指定している文字列内の「{0:#,0}」は、“書式指定項目”と呼ばれ、この指定によって数値が3桁区切りになる(※逆にいえば{ 〜 }で囲まれていない部分、この例でいうと「 バイト」は、そのまま文字列として出力される)。なお、(数値から文字列に変換する際の)書式指定項目の書き方について詳しくは「TIPS:数値を右詰めや0埋めで文字列化するには?」を参考にしてほしい(本稿では説明を割愛する)。
「0:#,0」の意味を簡単に説明しておくと、
「インデックス『0』番目のパラメータ(=Argument)に指定された数値(上記の例では、第2パラメータの「1234567」に該当)を、その整数部分の各数値グループ(=3桁ごとの文字列)の間に桁区切り文字(,)を挿入して文字列に変換する」
という意味になる。
出力文字列で「桁区切り文字(,)の挿入」が実現されるのは、書式指定項目で「桁区切り記号(,)」が指定されているからだ。「,」の前にある「#」は“桁プレースホルダ”、「,」の後にある「0」は“ゼロ・プレースホルダ”と呼ばれるもので、「,」は(単独では使えず)これらいずれかのプレースホルダの“間”に指定しなければならない。そのため、(「,」ではなく)「#,0」という記述になるわけだ(※桁プレイスホルダは数字を表示するか何も表示しないことを指定するもので、ゼロ・プレイスホルダは数字または「0」を必ず表示することを指定する。つまり、書式指定項目に「#,0」と指定した場合、引数の数値が「0」のときには「0」という文字列が出力されることになる。しかし、「0,0」の場合には「00」と出力され、「#,#」の場合は何も表示されないので注意が必要だ)。
次のサンプル・プログラムは、実際にString.Formatメソッドにより、数値を3桁区切りの文字列に変換する例である。
|
||
| 数値を3桁区切りの文字列に変換するサンプル・プログラム(上:C#、下:VB) |
3桁区切りは日本でも一般的な数値表現だが、現実の日本円の単位は4桁ごとに万→億→兆と繰り上がるので、4桁ごとに区切ってほしいという要望も少なくはないだろう。そこで4桁区切りにする方法について、後日公開予定の「TIPS:数値を4けた区切りの文字列に変換するには?」で紹介する。
ちなみに、3桁区切りの文字列を右詰めにしたい場合には、本稿で紹介した方法に、「TIPS:数値を右詰めや0埋めで文字列化するには?」の方法を組み合わせればよい(詳細は割愛)。![]()
| カテゴリ:クラス・ライブラリ 処理対象:文字列 使用ライブラリ:Stringクラス(System名前空間) 関連TIPS:数値を右詰めや0埋めで文字列化するには? 関連TIPS:数値を4けた区切りの文字列に変換するには?(後日公開予定) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


