## Floating point numbers

Floating point numbers follow the IEEE 754 standard and represent numbers with a decimal point, such as `3.14`

, or an exponent notation, such as `4e-14`

, and come in the types `Float16`

up to `Float64`

, the last one being used for double precision.

Single precision is achieved through the use of the `Float32`

type. Single precision float literals must be written in scientific notation, such as `3.14f0`

, but with `f`

, where one normally uses `e`

. That is, `2.5f2`

indicates `2.5*10^2`

with single precision, while `2.5e2`

indicates `2.5*10^2`

in double precision. Julia also has a `BigFloat`

type for arbitrary-precision floating numbers computations.

A built-in type promotion system takes care of all the numeric types that can work together seamlessly, so that there is no explicit conversion needed. Special values exist: `Inf`

and `-Inf`

are used for infinity, and `NaN`

is used for "not a number" values such as the result of `0/0`

or `Inf - Inf`

.

Floating point arithmetic in all programming languages is often...