Справочник языка
Числа и математика
Числовые значения в Axiom различаются диапазоном и точностью, поэтому выбранный тип определяет, какие результаты представимы без потерь. Глава собирает числовые типы и встроенные функции: модуль и знак, корни и степени, логарифмы, округление, преобразования и псевдослучайные числа. Общие правила вычислений собраны ниже, устройство каждой группы описано на отдельной странице.
Числовые значения
Целые числа хранит INTEGER — от −2147483648 до 2147483647; для более широкого диапазона служит LONG — от −9223372036854775808 до 9223372036854775807. DOUBLE хранит приближённые двоичные числа, DECIMAL — десятичные числа в пределах своего диапазона. Тип результата не всегда совпадает с типом аргумента: INT возвращает INTEGER, а математические функции вроде SIN — DOUBLE, поэтому в длинном вычислении полезно заранее решить, где нужна целая арифметика, а где допустима приближённая.
Числа передаются выражениями. Строка с цифрами числом не является: чтобы использовать её в вычислении, нужно явное преобразование, и выбирать его следует по требуемому результату. Точность типов и допустимые преобразования описаны на страницах диапазонов типов и преобразований.
Группы функций
Функции сгруппированы по задаче, а не по алфавиту: рядом стоят те, что решают один круг вопросов.
- Модуль, знак, выбор границ и RND — ABS, SGN, MIN, MAX, CLAMP, SETSIGN и RND.
- Корни, степени, логарифмы и округление — математические преобразования и правила удаления дробной части.
- Тригонометрические функции — углы в радианах и гиперболические зависимости.
- Преобразования — INT, CINT, CLNG, CDBL, CDEC, STR и VAL.
- ISNUMERIC — проверка полной числовой строки.
- RANDOMIZE — начальное состояние генератора.
Выбор правила округления
INT округляет вниз, а FIX и CINT отбрасывают дробную часть к нулю. На положительном числе разницы не видно, на отрицательном она проявляется сразу:
PRINT INT(-2.8)
PRINT FIX(-2.8)
PRINT CINT(-2.8)Ожидаемый вывод:
-3
-2
-2Для −2.8 INT уходит к меньшему целому −3, тогда как FIX и CINT сохраняют целую часть −2.