Перейти к основному содержимому

Числа

  • Целочисленное деление отбрасывает дробную часть: 7 / 2 равно 3. Чтобы получить дробный результат, сделайте одну сторону Real: 7 / 2.0 или n * 1.0 / d.
  • Остаток: оператора % нет. MathMod(n, d) берёт знак делителя, поэтому MathMod(-30, 360) равно 330 (то, что нужно для зацикливания угла или индекса). Для остатка со знаком n, как в C, используйте n - (n / d) * d.
  • Деление на ноль даёт 0 и не останавливает скрипт. Проверяйте делитель сами, если 0 был бы вводящим в заблуждение ответом.
  • Integer становится Real, когда встроенная функция объявляет Real. MathSqrt(16) — это MathSqrt(16.0). Обратного не бывает никогда: Real, переданный туда, где объявлен Integer, останавливает действие с ошибкой аргумент 1 имеет неверный тип, поэтому сначала округлите его через MathRound, MathFloor или MathCeil.
  • MathAbs, MathMin, MathMax, MathClamp и MathMod принимают любой из двух типов и возвращают выигравший аргумент в его собственном типе (MathMod: Integer, только если оба аргумента Integer). При равенстве возвращается первый аргумент. MathAtan2(y, x) принимает любой из двух типов и возвращает Real.
  • MathRandom(min, max) включает оба конца диапазона и останавливает действие, если min > max.
  • Встроенные функции Math никогда не возвращают NaN или бесконечность. Встроенная функция Math, получившая такое значение или не имеющая конечного ответа, возвращает 0 (0.0, если результат — Real): MathSqrt отрицательного числа, MathLog нуля или меньше, результат MathPow, не являющийся конечным, MathFloor, MathCeil или MathRound от NaN. MathFloor, MathCeil и MathRound от конечного значения за пределами диапазона Integer дают наибольшее или наименьшее Integer.
  • Результаты Real при превращении в Text показывают шесть знаков после запятой. Для показа округляйте.
  • Тригонометрия работает в радианах: rad = deg * MathGetPi() / 180.
  • Целочисленная арифметика, выходящая за пределы ±9,2 × 10¹⁸, переходит на другой конец диапазона: наибольшее Integer плюс один — это наименьшее Integer. Ошибки нет. Держите значения в диапазоне.