# 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. |