切捨て切上げ四捨五入
マイナス値の切捨ては、どっち方向?
「捨てる」という意味合いから、桁を取るということで、「-1.5」 は 「.5」を取って「-1」とする意見が多いようだ。
Excelでも、同様になる。
以下、それぞれの環境での方法をメモしておく。
Excel
ExcelVBAのRound関数は、偶数まるめ方式である。
VBA内で四捨五入をしたい場合は、ワークシート関数のRoundを呼び出せば良い
Public Function funcJISRound(value, keta As Long) '丸め funcJISRound = Round(value, keta) End Function Public Function funcRound(value, keta As Long) funcRound = WorksheetFunction.Round(value, keta) End Function
VB.net
'四捨五入 System.Math.Round(inValue, 0, MidpointRounding.AwayFromZero) '切捨て Public Function RoundDown(ByVal value As Decimal, ByVal digits As Integer) As Decimal Dim powered As Decimal = System.Math.Pow(10, digits) Dim wkValue As Decimal wkValue = value * powered wkValue = System.Math.Truncate(wkValue) roundDown = wkValue / powered End Function '切上げ Public Function RoundUp(ByVal value As Decimal, ByVal digits As Integer) As Decimal Dim powered As Decimal = System.Math.Pow(10, digits) Dim wkValue As Decimal wkValue = value * powered If value >= 0 Then wkValue = System.Math.Ceiling(wkValue) Else wkValue = System.Math.Floor(wkValue) End If RoundUp = wkValue / powered End Function
参考
VB .NET プログラミングリファレンス - 3-1 変数と定数
--切捨て SELECT TRUNC(1.5,0) FROM DUAL --四捨五入 SELECT ROUND(1.25,1) FROM DUAL 切上げは無いらしいので、.9足して、切捨てする --正数 SELECT TRUNC(+1.39 + 0.09, 1) FROM DUAL --負数 SELECT TRUNC(-1.39 - 0.09, 1) FROM DUAL