单位换算的舍入会造成不一致
别名: 换算舍入 · 显示精度 · conversion consistency
概念解释
一致的换算舍入(consistent conversion rounding)要求同一底层测量值在不同单位、视图与操作中使用同一换算因子和明确的精度政策,并且只在最终显示或规定的决策边界上舍入。舍入不是把小数位“弄整齐”:过早舍入、反复往返换算或各组件自行截位,会使详情、列表、图表、导出和校验规则对同一量给出互相矛盾的结果。
机制
换算先以单位比值改变数值表示,却不改变所表示的物理量。NIST 的原则是优先使用精确换算因子,计算中保留所有可用位,只对最终结果舍入一次;显示精度还应与原测量的不确定度或有效数字相称。若系统把已经舍入的英寸再换成厘米,或先舍入区间端点再计算跨度,误差会累积。阈值附近尤其敏感:两个数学上等价的显示值可能落在规则的不同侧。二进制浮点、不同语言运行库的 tie-breaking 规则,以及摄氏度与华氏度的偏移换算,会进一步放大跨组件差异。
怎么研究
研究时应先建立高精度规范值与换算因子作为 oracle,再生成零值、负值、极值、恰好半单位、阈值两侧、区间端点和多次单位切换等测试集。比较不同客户端、服务端、导出格式和分析管线的显示值与决策结果;因变量不仅是末位差异,还包括排序变化、阈值分类、总和偏差和用户对“哪个值是真的”的判断。可用任务测试观察参与者是否把过多小数误认为更精确,以及双单位并列时是否理解两者为同一测量而非两个独立读数。
边界
并不存在适用于所有量的固定小数位数。仪器分辨率、统计目的、商业规则和专业惯例会改变合理精度;计数等精确量也不能套用测量不确定度。最大值、最小值、公差和监管阈值不能使用普通的就近舍入而意外放宽限制,应按业务含义向不违反原界限的方向处理。为便于心算而给出的近似换算必须明确标成近似,不能回写为规范值,也不能用于高后果计算。
怎么落地
- 在一个服务或共享库中维护权威换算因子、计算精度和舍入模式;组件只请求“从规范量生成显示值”,不串联已格式化结果。
- 先用未舍入的规范值完成换算、聚合、比较和阈值判断,最后按字段用途与原始精度格式化;禁止单位往返后覆盖源值。
- 为列表、详情、图表、通知、打印和导出声明同一精度政策;双单位并列时从同一规范值独立生成,并保证区间端点、合计与派生量采用相容规则。
- 对换算因子、tie cases、阈值两侧、上下界定向舍入、负值和温度偏移做跨平台属性测试;再以录屏或快照核对同一记录在所有触点的数值是否一致。