PREV UP NEXT GNU Emacs Lisp Reference Manual

Chapter 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. Their values are exact. Floating point numbers are numbers with fractional parts, such as -4.5, 0.0, or 2.71828. They can also be expressed in exponential notation: 1.5e2 equals 150; in this example, e2 stands for ten to the second power, and is multiplied by 1.5. Floating point values are not exact; they have a fixed, limited amount of precision.

Support for floating point numbers is a new feature in Emacs 19, and it is controlled by a separate compilation option, so you may encounter a site where Emacs does not support them.

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