Format関数を用いて 数値を3桁ごとにカンマ区切りした文字列として表示する
C#で数値を3桁ごとにカンマ区切りした文字列に変換する手順を紹介します。
概要
C#ではFromat関数を用いると、容易に数値を3桁ごとにカンマで区切られた文字列に変換できます。
方法
標準の数値書式指定文字列を利用する方法と、カスタム数値書式指定文字列を利用する方法があります。
標準の数値書式指定文字列の「数値:N」を用いる場合
テストプログラム
UI
下図のUIを作成します。ButtonとTextBoxを配置します。
コード
下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace NumericFormatDemo
{
public partial class FormNumber : Form
{
public FormNumber()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int value = 1286000;
textBox1.Text += string.Format("{0:N}\r\n", value);
value = 3850;
textBox1.Text += string.Format("{0:N}\r\n", value);
double dvalue = 55.256487;
textBox1.Text += string.Format("{0:N}\r\n", dvalue);
}
}
}
解説
3桁ごとに区切りのカンマを表示する場合は「"N"書式指定子」を用います。
{0:N}
の数値書式指定文字列により、数値を3桁ごとのカンマ区切りの文字列で表示します。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[数値表示1]ボタンをクリックします。テキストボックスに結果が表示され、下図の状態になります。”N"の書式指定子の場合、桁数を指定しない場合小数点以下を含む文字列が表示されます。
カスタム数値書式指定文字列を用いる場合
テストプログラム
UI
下図のUIを作成します。
コード
下記のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace NumericFormatDemo
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int value = 1286000;
textBox1.Text += string.Format("{0:#,#}\r\n", value);
value = 2500;
textBox1.Text += string.Format("{0:#,#}\r\n", value);
value = 0;
textBox1.Text += string.Format("{0:#,#}\r\n", value);
double dvalue = 10.5624;
textBox1.Text += string.Format("{0:#,#}\r\n", dvalue);
dvalue = 0.012;
textBox1.Text += string.Format("{0:#,#}\r\n", dvalue);
}
}
}
解説
3桁ごとに区切りのカンマを表示する場合は「","カスタム指定子」を用います。","カスタム指定子を用いる場合は、2つ以上の"0"または"#"の間に","を記述します。
{0:#,#}
の数値書式指定文字列により、数値を3桁ごとのカンマ区切りの文字列で表示します。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[Test 01]ボタンをクリックします。テキストボックスに結果が表示され、下図の状態になります。
実行結果の補足
"{0:#,#}"の数値書式設定文字列を利用した場合数値の0は何も表示されない状態になります。(上記のテストプログラムの3番目の表示内容を参照) これは、"#"の桁プレースホルダーを指定しているため、"0"の場合は、1の桁もないと判断され何も表示されない結果となります。
数値が0の時に"0"の文字列を表示する場合は"{0:#,0}"の数値書式設定文字列を利用します。詳しくは「
カスタム数値書式指定文字列で"#"を用いると、0が空の文字列として表示される」の記事を参照してください。
また、小数点以下を含む浮動小数点型の値の場合は四捨五入された整数の値が表示されます。四捨五入で0以下になる浮動小数点型の値では整数では"0"となるため、何も表示されない結果となります。(上記のテストプログラムの5番目の表示内容を参照)
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用