Text Documents (Writer)
HTML Documents (Writer Web)
Spreadsheets (Calc)
Presentations (Impress)
Drawings (Draw)
Database Functionality (Base)
Formulae (Math)
Charts and Diagrams
Macros and Scripting
Office Installation
Common Help Topics
OneOffice Logo

Round Function [VBA]

Rounds a numeric value to a specified number of decimal digits.

This constant, function or object is enabled with the statement Option VBASupport 1 placed before the executable program code in a module.

This function implements the rounding rule known as "round-to-even". With this rule, whenever the difference between the number to be rounded and its nearest integer is equal to 0.5, the number is rounded to the nearest even number. See the examples below to learn more about this rule.

Beware that VBA's Round function works differently than Office Calc's Round function. In Calc, if the difference between the number to be rounded and the nearest integer is exactly 0.5, then the number is rounded up. Hence, in Calc the number 2.5 is rounded to 3 whereas using VBA's Round function the value 2.5 is rounded to 2 due to the "round-to-even" rule.

Syntax:

Round(expression [,numdecimalplaces])

Return value:

Double

Parameters:

expression: The numeric expression to be rounded.

numdecimalplaces: Optional argument that specifies the number of decimal digits in the resulting rounded value. The default value is 0.

Error codes:

5 Invalid procedure call

Example:


    Option VBASupport 1
    Sub Example-Round
        Dim r 
        r = Pi
        print r ' 3,14159265358979
        print Round(r, 5) ' 3,14159
        r = exp(1)
        print r ' 2,71828182845904
        print Round(r) ' 3
    End Sub
  

The following examples illustrate the "round-to-even" rule:


    ' Rounding to the nearest integer (decimalplaces = 0)
    MsgBox Round(3.5) ' 4
    MsgBox Round(4.5) ' 4
    MsgBox Round(5.5) ' 6
    MsgBox Round(6.5) ' 6
    ' Rounding with 2 decimal digits (decimalplaces = 2)
    MsgBox Round(1.555, 2) ' 1.56
    MsgBox Round(1.565, 2) ' 1.56
    MsgBox Round(1.575, 2) ' 1.58
    MsgBox Round(1.585, 2) ' 1.58