SCL ABS — 绝对值
取绝对值;整数和浮点数都支持。
SCL 的数学函数可以直接放在表达式里:ABS、LIMIT、MIN、MAX、SQRT。
LIMIT 把值夹在上下限之间;MIN/MAX 取多个值的最小/最大;ABS 去符号;SQRT 开方。
这些函数对类型比较敏感:整数和浮点的返回类型不同,负数开方会得到 NaN,最小负整数取绝对值可能溢出。
| 需求 | 指令 |
|---|---|
| 偏差绝对值 | ABS |
| 夹在上下限之间 | LIMIT |
| 多个值取最小 | MIN |
| 多个值取最大 | MAX |
| 平方根 | SQRT |
1#Error := #Actual - #Target;
2#AbsError := ABS(#Error);
3#Limited := LIMIT(MN := 0.0, IN := #AbsError, MX := 10.0);
LIMIT 不取整、不去符号;需要取整/绝对值时先用对应函数。
最少 2 个,最多 32 个,编号 IN1..INn 必须连续;类型要兼容。
LIMIT 把一个值夹在上下限之间;MIN/MAX 从多个值里取最小/最大,不夹值。
例如 INT 的 -32768 没有对应的正数;先判断边界或改用更大的整数类型。
返回 NaN/无效浮点,不会自动报警;先判断输入 ≥0,或对偏差先取 ABS。