DAS 脚本单位、精度与舍入
用可手算的例子讲清 Round、单位换算与数量约束。
数值必须带单位
前置知识:表达式与条件。美元/股、美分/股、股数、美元和百分比是不同单位。算术正确并不保证单位正确。给配置写清单位。本课使用假设数值,只做计算,不写 Montage 字段。
Round 不是通用 Floor
2025 年 6 月手册规定 precision 1–6 表示小数位,100 向下舍入到整手,101 舍入到最近整手。整手模式不是通用整数向下取整,不要由其他语言推断 precision=0。将结果用于数量之前,应确认本环境标的对应的整手规则。
可以手算核对的工作表
$feModelBudget = 42;
$feDistanceCents = 35;
$feDistanceDollars = $feDistanceCents / 100;
$feRawQuantity = $feModelBudget / $feDistanceDollars;
$feDisplayDistance = Round($feDistanceDollars, 2);
$feLotQuantity = Round($feRawQuantity, 100);
$feModelExposure = $feLotQuantity * $feDistanceDollars;
MsgBox($feRawQuantity, $feLotQuantity, $feModelExposure);
解释每一步转换
35 美分换为 0.35 美元/股,42/0.35 得到未按整手处理的 120 股。在已确认每手 100 股的约定下,模式 100 得到 100 股,模型敞口为 35 美元。这些是模型输出,不是损失上限。展示用距离单独保存,不能为了显示两位小数而悄悄改变计算分母。
边界与约束顺序
先验证分母,再做除法。数量上限应参与最终整手处理,并在处理后重新计算名义金额或模型敞口。上限 150 与每手 100 股组合,不能得到 200 股。测试整手边界两侧、小数和不足一手。归整后为零表示该规则下没有有效模型数量,不应自动补成最小数量。
练习与参考解答
预算 63 美元、距离 0.35 美元/股、数量上限 150、每手 100 股。参考解答:原始 180 → 上限 150 → 向下整手 100 → 模型敞口 35 美元。距离为零时在除法前停止;距离 0.004 不能因为显示精度而在计算中被改成零。