Floating point numbers are useful for representing numbers that are
not integral. The precise range of floating point numbers is
machine-specific; it is the same as the range of the C data type
double
on the machine you are using.
The read-syntax for floating point numbers requires either a decimal point (with at least one digit following), an exponent, or both. For example, `1500.0', `15e2', `15.0e2', `1.5e3', and `.15e4' are five ways of writing a floating point number whose value is 1500. They are all equivalent. You can also use a minus sign to write negative floating point numbers, as in `-1.0'.
Most modern computers support the IEEE floating point standard, which
provides for positive infinity and negative infinity as floating point
values. It also provides for a class of values called NaN or
"not-a-number"; numerical functions return such values in cases where
there is no correct answer. For example, (sqrt -1.0)
returns a
NaN. For practical purposes, there's no significant difference between
different NaN values in Emacs Lisp, and there's no rule for precisely
which NaN value should be used in a particular case, so Emacs Lisp
doesn't try to distinguish them. Here are the read syntaxes for
these special floating point values:
In addition, the value -0.0
is distinguishable from ordinary
zero in IEEE floating point (although equal
and =
consider
them equal values).
You can use logb
to extract the binary exponent of a floating
point number (or estimate the logarithm of an integer):
(logb 10) => 3 (logb 10.0e20) => 69
Go to the first, previous, next, last section, table of contents.