C# サンプル集 |
Visual Basic 中学校 > C# サンプル集 > C# サンプル集目次 >
小数点以下の桁数を指定して数値を表示する
2021/10/17
目次
四捨五入して小数第2位までを表示する
decimal value = 123.4567M;
string st = value.ToString("0.00");
System.Diagnostics.Debug.WriteLine(st); //123.46 と出力されます。
メモ:123.4567M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
四捨五入して小数第3位までを表示する
decimal value = 123.4567M;
string st = value.ToString("0.000");
System.Diagnostics.Debug.WriteLine(st); //123.457 と出力されます。
メモ:123.4567M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
0を補って小数第2位までを表示する
decimal value = 123.4M;
string st = value.ToString("0.00");
System.Diagnostics.Debug.WriteLine(st); //123.40 と出力されます。
メモ:123.4M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
補間文字列を使った四捨五入で小数第2位までを表示する
decimal value = 123.4567M;
string st = $"小数第2位までに四捨五入すると {value:0.00} です。";
System.Diagnostics.Debug.WriteLine(st); //「小数第2位までに四捨五入すると 123.46 です。」と出力されます。
メモ:123.4567M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
String.Formatを使った四捨五入で小数第2位までを表示する
decimal value = 123.4567M;
string st = String.Format("小数第2位までに四捨五入すると {0:0.00} です。", value);
System.Diagnostics.Debug.WriteLine(st); //「小数第2位までに四捨五入すると 123.46 です。」と出力されます。
メモ:文字を出力するメソッドはString.Formatのように書式指定できるオプションを持っている場合があります。たとえば、StringBuilder.AppendFormat, DebugWriteLine, Console.WriteLineなどは引数で "0.00" のような書式を指定できます。
メモ:123.4567M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
参考:四捨五入して小数第2位までにした結果を数値型で受け取る
decimal value = 123.4567M;
decimal result = Math.Round(value, 2, MidpointRounding.AwayFromZero);
System.Diagnostics.Debug.WriteLine(result); // 123.46 と出力されます。
メモ:Math.Roundでは引数を使って、四捨五入・切り上げ・切り捨て・マイナスの場合の動作を指定できます。
メモ:このページの他の例は「表示」目的を想定しているため結果を文字列(string)としています。表示ではなく、内部の計算の四捨五入などの丸めが必要な場合は、この例のように数値のまま扱うのが良いです。
メモ:123.4567M の末尾の M はこの数値が decimal であることを表しています。M がないと double になります。
発展学習では意欲的な方のために現段階では特に理解する必要はない項目を解説します。 小数点の記号は国や地域などの文化によって異なります。プログラムで文化を指定していない場合、実行環境の文化が自動的に使用されます。たとえばWindowsの設定です。 "0.00" などの書式を指定するときに下記のように文化を明示的に指定することもできます。ja-JP は日本文化を表します。 value.ToString("0.000", new System.Globalization.CultureInfo("ja-JP")) ここで、ja-JPの代わりにfr-FR (フランス)を指定すると小数点がドット . ではなく、カンマ , になることを確認できます。 実行するユーザーの環境に合わせて、ユーザーが慣れ親しんでいる表記で出力すべきか、世界中どの国で実行しても同じ表記で出力すべきかは注意深い検討が必要です。ユーザーの立場では自分が慣れた表記でシステムを扱える方がありがたいはずです。 参考:.NET アプリケーションのグローバライズとローカライズ https://docs.microsoft.com/ja-jp/dotnet/standard/globalization-localization/ |