警戒位 在数值分析中 可以使用一个或多个警戒位来减少舍入误差 如果说一个许多步骤计算的最终结果可以安全地舍入到 N 位小数那么最终的舍入操作引入的舍入误差对整体不确定性的影响可以忽略不计 然而在中间步骤舍入到同样多的位数很可能是不安全的 因为舍入误差可以累积 如果中间步骤中用了 M 位小数那么就有 MN 个警戒位 在多数计算系统中浮点运算都会用到警戒位例如            displaystyle times times  我们必须对齐它们的位数也就是说我们必须向第一个操作数额外添加一位即警戒位 因此我们有            displaystyle times times  计算可得      displaystyle times  或       displaystyle times   如果不用警戒位的话就是            displaystyle times times  计算得到      displaystyle times  或       displaystyle times  产生了的相对误差由此可见警戒位的重要性 以下一段 C 代码说明了一个由浮点舍入导致的错误 int main double a int i a   a   a   fori   a   i a  a printfid afn i a return   看上去程序不会终止 然而输出是  i a 另一个例子是 给定个数字     displaystyle  和     displaystyle  我们使第一个数字中  displaystyle  的幂次和第二个数字一致即     displaystyle  那么两个数字的加和是      第二个数     displaystyle  在填充两个  displaystyle  之后  displaystyle  后面的位数即警戒位再后面的是舍入位 舍入之后的结果是  displaystyle  而非  displaystyle  如果没有多余的位警戒位和舍入位的话即仅考虑      displaystyle  误差是  displaystyle