Format関数を用いて 通貨値を表示する
Formatメソッドを用いて通貨の値を表示するコードを紹介します。
概要
Formatメソッドで通貨形式で表示する場合は、標準の数値書式指定文字列の"c","C"を用います。
数値書式指定文字列の詳細は
こちらの記事を参照してください。
書式
サンプルプログラム
UI
下図のUIを作成します。Button,TextBox を1つづつ配置します。
コード
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 FormCurrency : Form
{
public FormCurrency()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
decimal value = 1285000;
textBox1.Text += string.Format("価格 : {0:c}", value);
}
}
}
解説
Formatメソッドの第一引数には "価格 : {0:c}" を与えています。{0:d} の部分に第二引数の変数の値が入ります。上記のコードでは、変数値は1285000ですので、"価格 : \1,285,000" がテキストボックスに表示されます。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[通貨表示]ボタンをクリックします。通貨の表示形式に整形されたテキストがテキストボックスに表示されます。
補足:ローカルの通貨型でない他の通貨型で整形する場合
上記の例では、日本語環境のため、日本円の表記で整形されました。以下では、他の通貨型の表記で整形したい場合のコードを紹介します。
ローカル以外の表記で整形する場合は、Formatメソッドの第一引数にIFormatProvider を与えるタイプのメソッドを利用します。
UI
先のUIにボタンを一つ追加します。
コード
下記のコードを記述します。追加したボタンのClickイベントを実装しています。
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;
using System.Globalization;
namespace NumericFormatDemo
{
public partial class FormCurrency : Form
{
public FormCurrency()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
decimal value = 243.55M;
textBox1.Text += string.Format(CultureInfo.CreateSpecificCulture("en-US"), "Price : {0:c}", value);
}
}
}
解説
Formatメソッドの第一引数に IFormatProvider を与えています。IFormatProvider はCultureInfoクラスのCreateSpecificCultureメソッドの戻り値を与えています。CreateSpecificCulture()メソッドの第一引数に対象とするカルチャーを指定します。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
[通貨表示]ボタンをクリックします。$(USドル)の通貨の表示形式に整形されたテキストがテキストボックスに表示されます。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用