3.5 Числовые преобразования

Чтобы преобразовать целое число в число с плавающей запятой, используйте функцию float.

Функция: float number

Эта функция возвращает number, преобразованное в число с плавающей запятой. Если number уже является числом с плавающей запятой, float возвращает его без изменений.

Существует четыре функции для преобразования чисел с плавающей запятой в целые числа; они различаются тем, как они округляют. Все они принимают аргумент number и необязательный аргумент divisor. Оба аргумента могут быть целыми или числами с плавающей запятой. divisor также может быть nil. Если divisor равен nil или опущен, эти функции преобразуют number в целое число или возвращают его без изменений, если оно уже является целым числом. Если divisor не равен nil, они делят number на divisor и преобразуют результат в целое число. Если divisor равен нулю (независимо от того, является ли он целым или числом с плавающей запятой), Emacs сигнализирует об ошибке arith-error.

Функция: truncate number &optional divisor

Эта функция возвращает number, преобразованное в целое число путем округления к нулю.

(truncate 1.2)
     ⇒ 1
(truncate 1.7)
     ⇒ 1
(truncate -1.2)
     ⇒ -1
(truncate -1.7)
     ⇒ -1
Функция: floor number &optional divisor

Эта функция возвращает number, преобразованное в целое число путем округления вниз (к отрицательной бесконечности).

Если указан divisor, эта функция использует тип операции деления, соответствующий mod, округляя вниз.

(floor 1.2)
     ⇒ 1
(floor 1.7)
     ⇒ 1
(floor -1.2)
     ⇒ -2
(floor -1.7)
     ⇒ -2
(floor 5.99 3)
     ⇒ 1
Функция: ceiling number &optional divisor

Эта функция возвращает number, преобразованное в целое число путем округления вверх (к положительной бесконечности).

(ceiling 1.2)
     ⇒ 2
(ceiling 1.7)
     ⇒ 2
(ceiling -1.2)
     ⇒ -1
(ceiling -1.7)
     ⇒ -1
Функция: round number &optional divisor

Эта функция возвращает number, преобразованное в целое число путем округления до ближайшего целого числа. При округлении значения, находящегося на одинаковом расстоянии от двух целых чисел, возвращается четное целое число.

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