切捨て切上げ四捨五入

マイナス値の切捨ては、どっち方向?
「捨てる」という意味合いから、桁を取るということで、「-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 変数と定数

Oracle

--切捨て
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