跳到主要内容

数字

  • 整数除法会截断:7 / 2 为 3。要得到带小数的结果,请让其中一侧为 Real:7 / 2.0 或 n * 1.0 / d。
  • 余数:没有 %。MathMod(n, d) 的结果与除数同号,因此 MathMod(-30, 360) 为 330(正是角度或索引回绕所需要的)。如需 C 语言中与 n 同号的余数,请使用 n - (n / d) * d。
  • 除以零会得到 0,且不会停止脚本。如果 0 会是一个误导性的结果,请自行测试除数。
  • 当内置函数声明 Real 时,Integer 会变为 Real。MathSqrt(16) 等同于 MathSqrt(16.0)。反过来则永远不会发生:在声明为 Integer 的位置传入 Real 会使操作停止,并报告 参数 1 的类型错误,因此请先用 MathRound、MathFloor 或 MathCeil 取整。
  • MathAbs、MathMin、MathMax、MathClamp 和 MathMod 接受任一类型,并返回胜出参数自身的类型(MathMod:仅当两个参数都是 Integer 时才返回 Integer)。相等时返回第一个参数。MathAtan2(y, x) 接受任一类型,并返回 Real。
  • MathRandom(min, max) 包含两端的值;如果 min > max,则会停止操作。
  • Math 内置函数从不返回 NaN 或无穷大。传入 NaN 或无穷大、或没有有限结果的 Math 内置函数会返回 0(结果为 Real 时为 0.0):对负数调用 MathSqrt、对零或负数调用 MathLog、MathPow 的结果不是有限值、对 NaN 调用 MathFloor、MathCeil 或 MathRound。对超出 Integer 范围的有限值调用 MathFloor、MathCeil 和 MathRound 会得到最大或最小的 Integer。
  • Real 结果转换为 Text 时显示六位小数。显示前请先舍入。
  • 三角函数使用弧度:rad = deg * MathGetPi() / 180。
  • 超出 ±9.2 × 10¹⁸ 的 Integer 算术会回绕到范围的另一端:最大的 Integer 加一就是最小的 Integer。不会报错。请将值保持在范围内。