数学函数
快速索引:
一般数学
Abs 绝对值
Value := Abs(Number)
返回 Number 的绝对值.
返回值类型和 Number 保持一致 (整数或浮点数).
MsgBox, % Abs(-1.2) ; 返回 1.2
Ceil 向上取整
Value := Ceil(Number)
返回 Number 向上取整后的整数 (不含任何 .00 后缀).
MsgBox, % Ceil(1.2) ; 返回 2 MsgBox, % Ceil(-1.2) ; 返回 -1
Exp 指数
Value := Exp(N)
返回 e (近似值为 2.71828182845905) 的 N 次幂.
N 可以为负数或小数. 要使用 e 之外其他数计算, 请使用 ** 运算符.
MsgBox, % Exp(1.2) ; 返回 3.320117
Floor 向下取整
Value := Floor(Number)
返回 Number 向下取整后的整数 (不含任何 .00 后缀).
MsgBox, % Floor(1.2) ; 返回 1 MsgBox, % Floor(-1.2) ; 返回 -2
Log 十进制对数
Value := Log(Number)
返回 Number 的十进制对数.
结果格式化为 浮点数. 如果 Number 为负数则返回空字符串.
MsgBox, % Log(1.2) ; 返回 0.079181
Ln 自然对数
Value := Ln(Number)
返回 Number 底数为 e 的自然对数.
结果格式化为 浮点数. 如果 Number 为负数则返回空字符串.
MsgBox, % Ln(1.2) ; 返回 0.182322
Mod 取余数 (求模)
Value := Mod(Dividend, Divisor)
返回 Dividend 除以 Divisor 之后的余数.
返回值的正负符号总是与 Dividend 相同(而不考虑 Divisor), 例如, mod(5, 3) 和 mod(5, -3) 的结果都为 2, 但 mod(-5, 3) 和 mod(-5, -3) 的结果为 -2. 如果传入浮点数, 则返回值也是浮点数, 例如, mod(5.0, 3) 的结果为 2.0 而 mod(5, 3.5) 的结果为 1.5. 如果 Divisor 为负数, 则返回空值 (空字符串).
MsgBox, % Mod(7.5, 2) ; 返回 1.5, 因为 7.5 = 2 x 3 + 1.5
Round 四舍五入
Value := Round(Number [, N])
返回 Number 由 N 设置的小数点后几位的数字.
如果 N 忽略则 N 为 0, 表示对 Number 四舍五入后取整到最接近的整数:
MsgBox, % Round(3.14) ; 返回 3
如果 N 为正数, 则 Number 首先设置为小数点之后 N 位, 然后四舍五入:
MsgBox, % Round(3.14, 1) ; 返回 3.1
如果 N 为负数, 则 Number 首先设置为小数点之前 N 位, 然后对右一位四舍五入:
MsgBox, % Round(345, -1) ; 返回 350, 这里的 -1 表示 5, 所以向上取整. MsgBox, % Round(345, -2) ; 返回 300, 因为 -2 表示 4, 所以向下取整.
不同于 Transform Round 语句, 无论 N 被省略还是小于 1, 返回值总是不含 .000 后缀.
从 v1.0.44.01+ 开始, 当 N 的值大于 0 时, 总是精确显示 N 个小数点后位数而不会被 SetFormat 影响. 如果这不是您期望的效果, 请在 Round() 返回之后再做一次计算; 例如: Round(3.333, 1)+0
.
Sqrt 平方根
Value := Sqrt(Number)
返回 Number 的平方根.
结果格式化为 浮点数. 如果 Number 为负数则函数返回空字值 (空字符串).
MsgBox, % Sqrt(16) ; 返回 4
三角函数
注意: 要将弧度值转换为度数值, 可用 弧度乘以 180/pi (约为 57.29578). 要将度数值转为弧度值, 可用 读数值乘以 pi/180 (约为 0.01745329252). pi 的值 (约为 3.141592653589793) 为 4乘以1的反正切的结果. (pi = 4 * ATan(1)).
Sin 正弦
Value := Sin(Number)
返回 Number 的正弦.
Number 必须为弧度值.
MsgBox, % Sin(1.2) ; 返回 0.932039
Cos 余弦
Value := Cos(Number)
返回 Number 的余弦值.
Number 必须为弧度值.
MsgBox, % Cos(1.2) ; 返回 0.362358
Tan 正切
Value := Tan(Number)
返回 Number 的正切值.
Number 必须为弧度值.
MsgBox, % Tan(1.2) ; 返回 2.572152
ASin 反正弦
Value := ASin(Number)
返回弧度表示的反正弦值 (其正弦值为 Number).
如果 Number 小于 -1 或大于 1, 则函数返回空值 (空字符串).
MsgBox, % ASin(0.2) ; 返回 0.201358
ACos 反余弦
Value := ACos(Number)
返回弧度表示的反余弦值 (其余弦值为 Number).
如果 Number 小于 -1 或大于 1, 则函数返回空值 (空字符串).
MsgBox, % ACos(0.2) ; 返回 1.369438
ATan 反正切
Value := ATan(Number)
返回弧度表示的反正切值(其正切值为 Number).
MsgBox, % ATan(1.2) ; 返回 0.876058
错误处理
无效操作,如除以零通常会产生一个空的结果(空字符串).
Abs 和 Mod 返回空字符串,如果它们的传入参数是非数值的. 大多数数学函数不执行严格的类型检查, 因此可能会将非数值作为零或另一个数字处理. 例如, Round("1.0foo")
返回 1. 然而,这一点预计会在 v2.0 有所改变.