# 3 Numbers

GNU Emacs supports two numeric data types: integers and floating-point numbers. Integers are whole numbers such as -3, 0, 7, 13, and 511. Floating-point numbers are numbers with fractional parts, such as -4.5, 0.0, and 2.71828. They can also be expressed in exponential notation: ‘`1.5e2`’ is the same as ‘`150.0`’; here, ‘`e2`’ stands for ten to the second power, and that is multiplied by 1.5. Integer computations are exact. Floating-point computations often involve rounding errors, as the numbers have a fixed amount of precision.

Integer Basics  Representation and range of integers.
Float Basics  Representation and range of floating point.
Predicates on Numbers  Testing for numbers.
Comparison of Numbers  Equality and inequality predicates.
Numeric Conversions  Converting float to integer and vice versa.
Arithmetic Operations  How to add, subtract, multiply and divide.
Rounding Operations  Explicitly rounding floating-point numbers.
Bitwise Operations  Logical and, or, not, shifting.
Math Functions  Trig, exponential and logarithmic functions.
Random Numbers  Obtaining random integers, predictable or not.