ROUND Function

Rounds input value to the nearest integer. Input can be an Integer, a Decimal, a column reference, or an expression. Optional second argument can be used to specify the number of digits to which to round.
  • When rounding to nearest integer, decimal values that are X.5 or more are rounded to X+1.

Basic Usage

Numeric literal example:

derive type:single value: ROUND(2.5)

Output: Generates a column with each row's value 3.

Expression example:

derive type:single value: ROUND(MyValue + 2.5)

Output: Generates a column containing the nearest integer to the sum of 2.5 and the value in the MyValue column.

Numeric literal example:

derive type:single value:ROUND(PI(),4)

Output: Generates a column containing pi rounded to four decimal points: 3.1416.

Syntax

derive type:single value: ROUND(numeric_value, integer_value)

ArgumentRequired?Data TypeDescription
numeric_valueYstring, decimal, or integerName of column or Decimal or Integer literal to apply to the function
integer_valueNinteger

Number of digits to which to round.

  • Default is 0, which rounds to the nearest integer.
  • Negative integer values can be applied.

For more information on syntax standards, see Language Documentation Syntax Notes.

numeric_value

Name of the column, numeric literal, or numeric expression.

  • Missing input values generate missing results.
  • Literal numeric values should not be quoted. Quoted values are treated as strings.
  • Multiple columns and wildcards are not supported.

Usage Notes:

Required?Data TypeExample Value
YesString (column reference) or Integer or Decimal literal2.5

integer_value

Number of digits to which to round the first argument of the function.

  • Positive values values truncate to the right of the decimal point.
  • Negative values truncate to the left of the decimal point.
  • Missing input values generate missing results.

Usage Notes:

Required? Data Type Example Value
NoInteger literal3

Examples

Example - Exponential functions

The following example demonstrates how the rounding functions work together. These functions include the following:

  • FLOOR - largest integer that is not greater than the input value. See FLOOR Function.
  • CEILING - smallest integer that is not less than the input value. See CEILING Function.
  • ROUND - nearest integer to the input value. See ROUND Function.
  • MOD - remainder integer when input1 is divided by input2. See Numeric Operators.

Source:

rowNumX
1-2.5
2-1.2
30
41
51.5
62.5
73.9
84
94.1
1011

Transform:

derive type: single value: FLOOR (X) as: 'floorX'

derive type: single value: CEILING (X) as: 'ceilingX'

derive type: single value: ROUND (X) as: 'roundX'

derive type: single value: (X % 2) as: 'modX'


Results:

rowNumXmodXroundXceilingXfloorX
1-2.5 -2-2-3
2-1.2 -1-1-2
300000
411111
51.5 221
62.5 332
73.9 443
840444
94.1 454
10111111111

Example - RANDBETWEEN and PI and ROUND functions

This example illustrates how you can apply the following functions to generate new and random data in your dataset:

  • RANDBETWEEN - Generate a random Integer value between two specified Integers. See RANDBETWEEN Function.
  • PI - Generate the value of pi to 15 decimal points. See PI Function.
  • ROUND - Round a decimal value to the nearest Integer or to a specified number of digits. See ROUND Function.
  • TRUNC - Round a value down to the nearest Integer value. See TRUNC Function.

Source:

In the following example, a company produces 10 circular parts, the size of which is measured in each product's radius in inches.

prodIdradius_in
p0011
p0022
p0033
p0044
p0055
p0066
p0077
p0088
p0099
p01010

Based on the above data, the company wants to generate some additional sizing information for these circular parts, including the generation of two points along each part's circumference where quality stress tests can be applied.

Transform:

To begin, you can use the following steps to generate the area and circumference for each product, rounded to three decimal points:

derive type:single value: ROUND(PI() * (POW(radius_in, 2)), 3) as: 'area_sqin'

derive type:single value: ROUND(PI() * (2 * radius_in), 3) as: 'circumference_in'

For quality purposes, the company needs two tests points along the circumference, which are generated by calculating two separate random locations along the circumference. Since the RANDBETWEEN function only calculates using Integer values, you must first truncate the values from circumference_in:

derive type:single value: TRUNC(circumference_in) as: 'trunc_circumference_in'

Then, you can calculate the random points using the following:

derive type:single value: RANDBETWEEN(0, trunc_circumference_in) as: 'testPt01_in'

derive type:single value: RANDBETWEEN(0, trunc_circumference_in) as: 'testPt02_in'

Results:

After the trunc_circumference_in column is dropped, the data should look similar to the following:

prodIdradius_inarea_sq_incircumference_intestPt01_intestPt02_in
p00113.1426.28355
p002212.56612.56633
p003328.27418.8501313
p004450.26525.1332424
p005578.54031.41600
p0066113.09737.6991515
p0077153.93843.9821111
p0088201.06250.26511
p0099254.46956.5492929
p01010314.15962.8322121

Was this page helpful? Let us know how we did:

Send feedback about...

Google Cloud Dataprep Documentation
Need help? Visit our support page.