Formatメソッドを利用して桁数を指定して、float型やdouble型などの浮動小数点型の値を出力するコードと実行結果を紹介します。
Format()メソッドで「複合書式指定文字列」に次の形式文字列を与えます。
{(インデックス番号):f(桁数)}
または
{(インデックス番号):F(桁数)}
{0:f4}
Format()メソッドで「複合書式指定文字列」にゼロプレースメント"0"や桁プレースメント"#"の文字列を与えます。
{0:0.######}
{1:0.##}
下図の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 FormFloating : Form
{
public FormFloating()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
double value = 0.32;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 1.496;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 0.0000042;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 1.0;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 3.68278123044;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 0.16242388601;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
value = 0.16245601;
textBox_Output.Text += string.Format("{0:f4}\r\n", value);
}
private void button3_Click(object sender, EventArgs e)
{
double value = 0.32;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 1.496;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 0.0000042;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 1.0;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 3.68278123044;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 0.16245388601;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
value = 0.16245601;
textBox_Output.Text += string.Format("{0:0.000000}\r\n", value);
}
}
}
button2では、Format()メソッドで「複合書式指定文字列」に"{0:f4}"を指定し小数点以下4桁を表示する動作にします。
また、button3では"0"プレースメントを用いて小数点以下6桁まで表示する動作にしています。
プロジェクトを実行します。下図のウィンドウが表示されます。
[button2]をクリックします。下図の表示結果が得られます。小数点以下4桁まで表示されています。小数点4桁目の値は小数点以下5桁目の値で四捨五入されて表示されます。
[button3]をクリックします。こちらは小数点以下6桁まで表示されます。こちらも小数点6桁目の値は、小数点以下7桁目の値で四捨五入されて表示されます。
先の"0"プレースメントを用いた記述では、桁数が6桁にそろえられますが、"0.12"などのように、桁数が少ない場合でも指定した桁数 "0.120000"と"表示されてしまします。0であった場合には桁を表示しない場合は"#"プレースメントを使用します。
button4として以下のコードを記述します。
private void button4_Click(object sender, EventArgs e)
{
double value = 0.32;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 1.496;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 0.0000042;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 1.0;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 3.68278123044;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 0.16242388601;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
value = 0.16245601;
textBox_Output.Text += string.Format("{0:0.######}\r\n", value);
}
"#"を用いることで小数点以下6桁を表示しますが、0で桁が埋められてしまう場合は何も表示しない動作になります。
プロジェクトを実行し[button4]をクリックすると下図の表示結果となります。桁数の少ない小数は桁が"0"で埋められていないことが確認できます。
この表示の場合でも、桁があふれる場合は、最後の桁は四捨五入されて表示されます。