Next: , Previous: Comparison of Numbers, Up: Numbers

### 3.5 Numeric Conversions

To convert an integer to floating point, use the function `float`.

— Function: float number

This returns number converted to floating point. If number is already a floating point number, `float` returns it unchanged.

There are four functions to convert floating point numbers to integers; they differ in how they round. All accept an argument number and an optional argument divisor. Both arguments may be integers or floating point numbers. divisor may also be `nil`. If divisor is `nil` or omitted, these functions convert number to an integer, or return it unchanged if it already is an integer. If divisor is non-`nil`, they divide number by divisor and convert the result to an integer. integer. If divisor is zero (whether integer or floating-point), Emacs signals an `arith-error` error.

— Function: truncate number &optional divisor

This returns number, converted to an integer by rounding towards zero.

```          (truncate 1.2)
⇒ 1
(truncate 1.7)
⇒ 1
(truncate -1.2)
⇒ -1
(truncate -1.7)
⇒ -1
```
— Function: floor number &optional divisor

This returns number, converted to an integer by rounding downward (towards negative infinity).

If divisor is specified, this uses the kind of division operation that corresponds to `mod`, rounding downward.

```          (floor 1.2)
⇒ 1
(floor 1.7)
⇒ 1
(floor -1.2)
⇒ -2
(floor -1.7)
⇒ -2
(floor 5.99 3)
⇒ 1
```
— Function: ceiling number &optional divisor

This returns number, converted to an integer by rounding upward (towards positive infinity).

```          (ceiling 1.2)
⇒ 2
(ceiling 1.7)
⇒ 2
(ceiling -1.2)
⇒ -1
(ceiling -1.7)
⇒ -1
```
— Function: round number &optional divisor

This returns number, converted to an integer by rounding towards the nearest integer. Rounding a value equidistant between two integers may choose the integer closer to zero, or it may prefer an even integer, depending on your machine.

```          (round 1.2)
⇒ 1
(round 1.7)
⇒ 2
(round -1.2)
⇒ -1
(round -1.7)
⇒ -2
```