Floating point numbers follow the IEEE 754 standard and represent numbers with a decimal point such as 3.14
or an exponent notation 4e-14
, and come in the types Float16
up to Float64
, the last one 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
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 a source of subtle bugs...