E2.11.3step-precision match设计
步长与精度需与实际使用匹配
别名: 步进粒度 · input step · 小数步进
概念解释
每点一次加减,值走过的距离叫步长;系统愿意存储和显示的最小差别叫精度。两者都要贴着真实使用:票按 1 张走、货币按分走、温度计按 0.5 度走。步长比使用粗,目标夹在两档中间到不了;步长比使用细,要点许多次才看见有意义的变化,或在小数位里迷路。它管的是一次增量的语义,不是区间大小该不该键入。
机制
人把「点一下」理解成「按业务有意义的最小一档」。票务里这一档是一张,点一下出现 1.00 就错了;汇率里这一档可能是 0.0001,步长 1 等于不能调。步长还和精度绑定:界面允许点出 0.01,后端只存整数,提交后值被四舍五入,用户以为设定已经生效。键盘方向键、滚轮、无障碍步进通常复用同一 step,设错会在所有通道上一起错。匹配不是数学上的好看,是「一次操作对应一次业务决策」。
边界
同一字段在不同模式里粒度会变:专业模式要 0.001,日常模式要 1。只设一个步长会得罪其中一侧。科学计数、百分比与小数切换时,步长应按当前显示单位换算,否则从 99% 点一下变成 100.01% 这种越界。用户键入了比步长更细的值(直接打 2.5,步长却是 1),失焦时不该被强行咬合到 2 或 3,除非业务禁止中间值;咬合要明示。
怎么落地
- 按业务最小有意义差别设步长:件数为 1,货币为最小币值,评分为量表一档。
- 让显示精度、存储精度和步长一致;不允许点出来却存不进去的小数。
- 方向键、滚轮、加减按钮共用这一步长,避免一条通道 1、另一条通道 10。
- 验证:列出用户真正会要的目标值,看能否用步进恰好落到,而不会停在两档之间或需要十几次点击才感到变化。再键入一个合法的中间值,失焦后不该被偷偷咬合掉。