Skip Headers
Oracle® Database SQL Language Reference
11g Release 1 (11.1)

Part Number B28286-02
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

ROUND (number)

Syntax

round_number::=

Description of round_number.gif follows
Description of the illustration round_number.gif

Purpose

ROUND returns n rounded to integer places to the right of the decimal point. If you omit integer, then n is rounded to zero places. If integer is negative, then n is rounded off to the left of the decimal point.

n can be any numeric datatype or any nonnumeric datatype that can be implicitly converted to a numeric datatype. If you omit integer, then the function returns the value ROUND(n, 0) in the same datatype as the numeric datatype of n. If you include integer, then the function returns NUMBER.

ROUND is implemented using the following rules:

  1. If n is 0, then ROUND always returns 0 regardless of integer.

  2. If n is negative, then ROUND(n, integer) returns -ROUND(-n, integer).

  3. If n is positive, then

    ROUND(n, integer) = FLOOR(n * POWER(10, integer) + 0.5) * POWER(10, -integer)
    

ROUND applied to a NUMBER value may give a slightly different result from ROUND applied to the same value expressed in floating-point. The different results arise from differences in internal representations of NUMBER and floating point values. The difference will be 1 in the rounded digit if a difference occurs.

See Also:

Table 2-10, "Implicit Type Conversion Matrix" for more information on implicit conversion and "Floating-Point Numbers" for more information on how Oracle Database handles BINARY_FLOAT and BINARY_DOUBLE values

Examples

The following example rounds a number to one decimal point:

SELECT ROUND(15.193,1) "Round" FROM DUAL;

     Round
----------
      15.2

The following example rounds a number one digit to the left of the decimal point:

SELECT ROUND(15.193,-1) "Round" FROM DUAL;

     Round
----------
        20