The NUMBER data type is used to store zero, negative, positive, fixed, and floating point numbers with up to 38 digits of precision. Numbers range between 1.0×10 -130 and 1.0×10 126.

Numbers data type can be defined in following ways:

**NUMBER(p,s) data type**

where p is the precision up to 38 digits and s is the scale (number of digits to the right of the decimal point). The scale can range between -84 to 127.

NUMBER(p,s) : Number having precision p and scale s.

The precision p can range from 1 to 38.

The scale s can range from -84 to 127.

**NUMBER (p) data type**

This is a fixed-point number with a scale of zero and a precision of p.

**FLOAT[(p)] data type**

Oracle supports the ANSI data type FLOAT. Therefore, specifying a floating-point number you can use FLOAT data type instead of NUMBER data type.

p is the binary precision that can range from 1 to 126. If p is not specified the default value is binary 126. To convert from binary to decimal precision, multiply p by 0.30103. To convert from decimal to binary precision, multiply the decimal precision by 3.32193. 126 digits of binary precision is roughly equivalent to 38 digits of decimal precision.

**BINARY_FLOAT data type**

BINARY_FLOAT : 32-bit floating point number.

This datatype requires 5 bytes, including the length byte

**BINARY_DOUBLE data type**

BINARY_DOUBLE : 64-bit floating point number.

This datatype requires 9 bytes, including the length byte.