3.3 Type Predicates for Numbers

The functions in this section test for numbers, or for a specific type of number. The functions integerp and floatp can take any type of Lisp object as argument (they would not be of much use otherwise), but the zerop predicate requires a number as its argument. See also integer-or-marker-p and number-or-marker-p, in Predicates on Markers.

Function: bignump object

This predicate tests whether its argument is a large integer, and returns t if so, nil otherwise. Unlike small integers, large integers can be = or eql even if they are not eq.

Function: fixnump object

This predicate tests whether its argument is a small integer, and returns t if so, nil otherwise. Small integers can be compared with eq.

Function: floatp object

This predicate tests whether its argument is floating point and returns t if so, nil otherwise.

Function: integerp object

This predicate tests whether its argument is an integer, and returns t if so, nil otherwise.

Function: numberp object

This predicate tests whether its argument is a number (either integer or floating point), and returns t if so, nil otherwise.

Function: natnump object

This predicate (whose name comes from the phrase “natural number”) tests to see whether its argument is a nonnegative integer, and returns t if so, nil otherwise. 0 is considered non-negative.

wholenump is a synonym for natnump.

Function: zerop number

This predicate tests whether its argument is zero, and returns t if so, nil otherwise. The argument must be a number.

(zerop x) is equivalent to (= x 0).