Floating-point types
real info
| Detail | Info |
|---|---|
| Size | 4 bytes |
| Aliases | float4 |
| Catalog name | pg_catalog.float4 |
| OID | 700 |
| Range | Approx. 1E-37 to 1E+37 with 6 decimal digits of precision |
double precision info
| Detail | Info |
|---|---|
| Size | 8 bytes |
| Aliases | float,float8, double |
| Catalog name | pg_catalog.float8 |
| OID | 701 |
| Range | Approx. 1E-307 to 1E+307 with 15 decimal digits of precision |
Syntax
Details
Literals
Materialize assumes untyped numeric literals containing decimal points are
numeric; to use float, you must explicitly cast them as we’ve
done below.
Special values
Floating-point numbers have three special values, as specified in IEEE 754:
| Value | Aliases | Represents |
|---|---|---|
NaN |
Not a number | |
Infinity |
Inf, +Infinity, +Inf |
Positive infinity |
-Infinity |
-Inf |
Negative infinity |
To input these special values, write them as a string and cast that string to the desired floating-point type. For example:
SELECT 'NaN'::real AS nan
nan
-----
NaN
The strings are recognized case insensitively.
Valid casts
In addition to the casts listed below, real and double precision values can be cast
to and from one another. The cast from real to double precision is implicit and the cast from double precision to real is by assignment.
From real
You can cast real or double precision to:
To real
You can cast to real or double precision from the following types:
Examples
SELECT 1.23::real AS real_v;
real_v
---------
1.23