Double precision floating point type. Occupies 8 bytes. On Maple, the
`double` type has a range of approximately -1.79769×10^308 to
1.79769×10^308; the `double` type subject to the same *overflow
issues* as any numeric data type.

Floating point numbers are not exact, and may yield strange results
when compared. For example `6.0 / 3.0` may not equal `2.0`. You
should instead check that the absolute value of the difference between
the numbers is less than some small number.

Floating point math is also much slower than integer math in performing calculations, so should be avoided if, for example, a loop has to run at top speed for a critical timing function. Programmers often go to some lengths to convert floating point calculations to integer math to increase speed.

For more information, see the Wikipedia article on floating point math.

Floating-point numbers represent numbers with “decimal point”, unlike integral types, which always represent whole numbers. Floating-point numbers are often used to approximate analog and continuous values because they have greater resolution than integers.

The double implementation on the Maple uses twice the number of bytes
as a *float*, with the corresponding gains in
precision.

Users who borrow code from other sources that includes `double`
variables may wish to examine the code to see if the implied range and
precision are different from that actually achieved on the Maple.

License and Attribution

Portions of this page were adapted from the Arduino Reference Documentation, which is released under a Creative Commons Attribution-ShareAlike 3.0 License.