Floats
Gleam's Float
type represents numbers that are not integers.
Gleam's numerical operators are not overloaded, so there are dedicated operators for working with floats.
Floats are represented as 64 bit floating point numbers on both the Erlang and JavaScript runtimes. The floating point behaviour is native to their respective runtimes, so their exact behaviour will be slightly different on the two runtimes.
Under the JavaScript runtime, exceeding the maximum (or minimum) representable
value for a floating point value will result in Infinity
(or
-Infinity
). Should you try to divide two infinities you will
get NaN
as a result.
When running on the BEAM any overflow will raise an error. So there is
no NaN
or Infinity
float value in the Erlang
runtime.
Division by zero will not overflow, but is instead defined to be zero.
The
gleam/float
standard library module contains functions for working with floats.