 # round(sourceNum)

Operator Type:

Operator Scope of Action:

Operator Purpose:

Operator Last Altered:

Function  [other Function type actions]

Item  [operators of similar scope]

Mathematical  [other Mathematical operators]

Baseline

As at baseline

Yes

round(sourceNum)

round() rounds the value of its sourceNum argument to the nearest integer. Note that from v9.5.2, there is now a dot-operator version (with the same behaviour) Number.round().

The Number.format, Number.precision and format() functions all round numbers in this manner when shortening numbers during formatting. A partial integer over .50 always round up, everything else rounds down. Thus:

`\$MyNumber = round(4.0);` gives 4

`\$MyNumber = round(4.2);` gives 4

`\$MyNumber = round(4.5);` gives 5

`\$MyNumber = round(4.7);` gives 5

The round function with work on string literal or String attribute values that are just numbers:

`\$MyNumber = round("4.2");` gives 4

`\$MyNumber = round("4.7");` gives 5

`\$MyString = round(4.2);` gives "4"

`\$MyString = round(4.7);` gives "5"

`\$MyString = round("4.2");` gives "4"

`\$MyString = round("4.7");` gives "5"

There are also functions to always force rounding upwards (ceiling)—see ceil(), or to force rounding downwards (floor)—see floor().

For a practical example, assume you would like to round you calculation (upward) to the nearest 100, so if the calculation output is 167 it should be 200, for a result of 540 a result of 600, and so on. This can be done like so:

`\$MyNumber = 100*ceil(\$MyNumber/100);`

whereas if you used round(), as in:

`\$MyNumber = 100*round(\$MyNumber/100);`

the result would vary depending on whether \$MyNumber started above or below the nearest 50. An opposite of the first example, i.e. where everything rounds downwards to the nearest 100 can be done using floor():

`\$MyNumber = 100*floor(\$MyNumber/100);`