Float32, Float64
Types are equivalent to types of C:
Float32
βfloat
.Float64
βdouble
.
We recommend that you store data in integer form whenever possible. For example, convert fixed precision numbers to integer values, such as monetary amounts or page load times in milliseconds.
Aliases:
Float32
βFLOAT
.Float64
βDOUBLE
.
When creating tables, numeric parameters for floating point numbers can be set (e.g. FLOAT(12)
, FLOAT(15, 22)
, DOUBLE(12)
, DOUBLE(4, 18)
), but ClickHouse ignores them.
Using Floating-point Numbersβ
- Computations with floating-point numbers might produce a rounding error.
SELECT 1 - 0.9
ββββββββminus(1, 0.9)ββ
β 0.09999999999999998 β
βββββββββββββββββββββββ
- The result of the calculation depends on the calculation method (the processor type and architecture of the computer system).
- Floating-point calculations might result in numbers such as infinity (
Inf
) and βnot-a-numberβ (NaN
). This should be taken into account when processing the results of calculations. - When parsing floating-point numbers from text, the result might not be the nearest machine-representable number.
NaN and Infβ
In contrast to standard SQL, ClickHouse supports the following categories of floating-point numbers:
Inf
β Infinity.
SELECT 0.5 / 0
ββdivide(0.5, 0)ββ
β inf β
ββββββββββββββββββ
-Inf
β Negative infinity.
SELECT -0.5 / 0
ββdivide(-0.5, 0)ββ
β -inf β
βββββββββββββββββββ
NaN
β Not a number.
SELECT 0 / 0
ββdivide(0, 0)ββ
β nan β
ββββββββββββββββ
See the rules for NaN
sorting in the section ORDER BY clause.