Visual Basic サンプル集 |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Visual Basic 中学校 > Visual Basic サンプル集 > Visual Basic サンプル集目次 >
小数点以下の桁数を指定して数値を表示する
2021/10/17
目次
四捨五入して小数第2位までを表示する
Dim value As Decimal = 123.4567D
Dim st As String = value.ToString("0.00")
Debug.WriteLine(st) '123.46 と出力されます。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
四捨五入して小数第3位までを表示する
Dim value As Decimal = 123.4567D
Dim st As String = value.ToString("0.000")
Debug.WriteLine(st) '123.457 と出力されます。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
0を補って小数第2位までを表示する
Dim value As Decimal = 123.4D
Dim st As String = value.ToString("0.00")
Debug.WriteLine(st) '123.40 と出力されます。
メモ:123.4D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
補間文字列を使った四捨五入で小数第2位までを表示する
Dim value As Decimal = 123.4567D
Dim st As String = $"小数第2位までに四捨五入すると {value:0.00} です。"
Debug.WriteLine(st) '「小数第2位までに四捨五入すると 123.46 です。」と出力されます。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
String.Formatを使った四捨五入で小数第2位までを表示する
Dim value As Decimal = 123.4567D
Dim st As String = String.Format("小数第2位までに四捨五入すると {0:0.00} です。", value)
Debug.WriteLine(st) '「小数第2位までに四捨五入すると 123.46 です。」と出力されます。
メモ:文字を出力するメソッドはString.Formatのように書式指定できるオプションを持っている場合があります。たとえば、StringBuilder.AppendFormat, DebugWriteLine, Console.WriteLineなどは引数で "0.00" のような書式を指定できます。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
伝統的な Format 関数を使った四捨五入で小数第2位までを表示する
Dim value As Decimal = 123.4567D
Dim st As String = Format(value, "0.00")
Debug.WriteLine(st) '123.46 と出力されます。
メモ:VB6に慣れ親しんだ開発者以外にはお勧めしません。ToStringの方が .NET の基本的な機能だからです。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
参考:四捨五入して小数第2位までにした結果を数値型で受け取る
Dim value As Decimal = 123.4567D
Dim result As Decimal = Math.Round(value, 2, MidpointRounding.AwayFromZero)
Debug.WriteLine(result) '123.46 と出力されます。
メモ:Math.Roundでは引数を使って、四捨五入・切り上げ・切り捨て・マイナスの場合の動作を指定できます。
メモ:このページの他の例は「表示」目的を想定しているため結果を文字列(String)としています。表示ではなく、内部の計算の四捨五入などの丸めが必要な場合は、この例のように数値のまま扱うのが良いです。
メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。
発展学習では意欲的な方のために現段階では特に理解する必要はない項目を解説します。 小数点の記号は国や地域などの文化によって異なります。プログラムで文化を指定していない場合、実行環境の文化が自動的に使用されます。たとえばWindowsの設定です。 "0.00" などの書式を指定するときに下記のように文化を明示的に指定することもできます。ja-JP は日本文化を表します。 value.ToString("0.000", New CultureInfo("ja-JP")) ここで、ja-JPの代わりにfr-FR (フランス)を指定すると小数点がドット . ではなく、カンマ , になることを確認できます。 実行するユーザーの環境に合わせて、ユーザーが慣れ親しんでいる表記で出力すべきか、世界中どの国で実行しても同じ表記で出力すべきかは注意深い検討が必要です。ユーザーの立場では自分が慣れた表記でシステムを扱える方がありがたいはずです。 参考:.NET アプリケーションのグローバライズとローカライズ https://docs.microsoft.com/ja-jp/dotnet/standard/globalization-localization/ |
VB6では
Format(value, "0.00")が使えます。
改訂履歴
不明2002年~2019年の間。
- 初版
2020/5/28
- 全面改訂
2021/10/17
- 目次と改訂履歴を追加
- Option Strict On でも実行できるように各サンプルの小数リテラル(123.4567)の末尾に D を追加。Dの意味の説明も追加。
- 四捨五入であることを明示するため、いくつかの章の見出しを修正
- 参考:四捨五入して小数第2位までにした結果を数値型で受け取る を追加