Truncate・Ceiling・Floor・Roundの各メソッドと丸め・端数処理の結果の違い 言語: VB C# 各メソッドの端数処理の動作を比較すると次のようになります。 0.25刻みの数について、それぞれのメソッドを使って端数処理した場合の結果を並べています。 Truncate・Ceiling・Floor・Roundの各メソッドと丸め・端数処理の結果の違い すべて選択してコピー ダウンロード 行番号を表示する Imports System Class Sample Shared Sub Main() Console.WriteLine("{0,6}| {1,12} {2,12} {3,12} {4,16} {5,20}| {0,6}", _ "value", _ "Ceiling", _ "Floor", _ "Truncate", _ "Round+ToEven", _ "Round+AwayFromZero") Console.WriteLine(New String("-"c, 14 * 7)) For d As Double = 2.75 To -2.75 Step -0.25 Console.WriteLine("{0,6:F2}| {1,12:F2} {2,12:F2} {3,12:F2} {4,16:F2} {5,20:F2}| {0,6:F2}", _ d, _ Math.Ceiling(d), _ Math.Floor(d), _ Math.Truncate(d), _ Math.Round(d, MidpointRounding.ToEven), _ Math.Round(d, MidpointRounding.AwayFromZero)) Next End Sub End Class 実行結果 value| Ceiling Floor Truncate Round+ToEven Round+AwayFromZero| value -------------------------------------------------------------------------------------------------- 2.75| 3.00 2.00 2.00 3.00 3.00| 2.75 2.50| 3.00 2.00 2.00 2.00 3.00| 2.50 2.25| 3.00 2.00 2.00 2.00 2.00| 2.25 2.00| 2.00 2.00 2.00 2.00 2.00| 2.00 1.75| 2.00 1.00 1.00 2.00 2.00| 1.75 1.50| 2.00 1.00 1.00 2.00 2.00| 1.50 1.25| 2.00 1.00 1.00 1.00 1.00| 1.25 1.00| 1.00 1.00 1.00 1.00 1.00| 1.00 0.75| 1.00 0.00 0.00 1.00 1.00| 0.75 0.50| 1.00 0.00 0.00 0.00 1.00| 0.50 0.25| 1.00 0.00 0.00 0.00 0.00| 0.25 0.00| 0.00 0.00 0.00 0.00 0.00| 0.00 -0.25| 0.00 -1.00 0.00 0.00 0.00| -0.25 -0.50| 0.00 -1.00 0.00 0.00 -1.00| -0.50 -0.75| 0.00 -1.00 0.00 -1.00 -1.00| -0.75 -1.00| -1.00 -1.00 -1.00 -1.00 -1.00| -1.00 -1.25| -1.00 -2.00 -1.00 -1.00 -1.00| -1.25 -1.50| -1.00 -2.00 -1.00 -2.00 -2.00| -1.50 -1.75| -1.00 -2.00 -1.00 -2.00 -2.00| -1.75 -2.00| -2.00 -2.00 -2.00 -2.00 -2.00| -2.00 -2.25| -2.00 -3.00 -2.00 -2.00 -2.00| -2.25 -2.50| -2.00 -3.00 -2.00 -2.00 -3.00| -2.50 -2.75| -2.00 -3.00 -2.00 -3.00 -3.00| -2.75 関連するページ Math.Max・Math.Minメソッドを使って3組以上の値から最大値・最小値を求める LINQの拡張メソッドMax・Minを使って配列内の最大・最小の値を求める Math.Truncate・Ceiling・Floor・Roundの各メソッドを使って切り捨て・切り上げ・切り下げ・四捨五入を行う Math.Roundメソッドを使って小数点n桁への四捨五入をする Math.Roundメソッドを使って整数を任意の桁数で四捨五入をする Math.BigMulメソッドを使ってオーバーフローを起こさずに32ビット整数同士の積を求める Math.DivRemメソッドを使って商と剰余を同時に求める