ヘッダー
Visual Basic サンプル集
VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

小数点以下の桁数を指定して数値を表示する

2021/10/17

→ C# のサンプルに切り替える

 

四捨五入して小数第2位までを表示する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim st As String = value.ToString("0.00")

Debug.WriteLine(st) '123.46 と出力されます。

Debug.WriteLineが表示される場所

メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

四捨五入して小数第3位までを表示する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim st As String = value.ToString("0.000")

Debug.WriteLine(st) '123.457 と出力されます。

Debug.WriteLineが表示される場所

メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

0を補って小数第2位までを表示する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4D
Dim st As String = value.ToString("0.00")

Debug.WriteLine(st) '123.40 と出力されます。

Debug.WriteLineが表示される場所

メモ:123.4D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

補間文字列を使った四捨五入で小数第2位までを表示する

VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim st As String = $"小数第2位までに四捨五入すると {value:0.00} です。"

Debug.WriteLine(st) '「小数第2位までに四捨五入すると 123.46 です。」と出力されます。

Debug.WriteLineが表示される場所

メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

String.Formatを使った四捨五入で小数第2位までを表示する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim st As String = String.Format("小数第2位までに四捨五入すると {0:0.00} です。", value)

Debug.WriteLine(st) '「小数第2位までに四捨五入すると 123.46 です。」と出力されます。

Debug.WriteLineが表示される場所

メモ:文字を出力するメソッドはString.Formatのように書式指定できるオプションを持っている場合があります。たとえば、StringBuilder.AppendFormat, DebugWriteLine, Console.WriteLineなどは引数で "0.00" のような書式を指定できます。

メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

伝統的な Format 関数を使った四捨五入で小数第2位までを表示する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim st As String = Format(value, "0.00")

Debug.WriteLine(st) '123.46 と出力されます。

Debug.WriteLineが表示される場所

メモ:VB6に慣れ親しんだ開発者以外にはお勧めしません。ToStringの方が .NET の基本的な機能だからです。

メモ:123.4567D の末尾の D はこの数値が Decimal であることを表しています。D がないと Double になります。

 

 

参考:四捨五入して小数第2位までにした結果を数値型で受け取る

VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 Visual Studio 2022

Dim value As Decimal = 123.4567D
Dim result As Decimal = Math.Round(value, 2, MidpointRounding.AwayFromZero)

Debug.WriteLine(result) '123.46 と出力されます。

Debug.WriteLineが表示される場所

メモ: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対応 VB6では Format(value, "0.00")が使えます。

 

改訂履歴

不明2002年~2019年の間。

  • 初版

2020/5/28

  • 全面改訂

2021/10/17

  • 目次と改訂履歴を追加
  • Option Strict On でも実行できるように各サンプルの小数リテラル(123.4567)の末尾に D を追加。Dの意味の説明も追加。
  • 四捨五入であることを明示するため、いくつかの章の見出しを修正
  • 参考:四捨五入して小数第2位までにした結果を数値型で受け取る を追加