首先,似乎无法预测vpa何时会离开或朝零.以下结果与“离零的一半”,“一半到一半”或任何一个
usual rules不一致:
>> disp(vpa(sym('0.135'),2))
0.14
>> disp(vpa(sym('0.125'),2))
0.12
>> disp(vpa(sym('0.115'),2))
0.11
Octave的结果也不一致,与Matlab的结果不同:
>> disp(vpa(sym('0.135'),2))
0.14
>> disp(vpa(sym('0.125'),2))
0.13
>> disp(vpa(sym('0.115'),2))
0.11
这种不可预测性并没有真正影响答案,但它强制用更通用的术语表达,而不假设任何特定的舍入规则.
设W是想要的位数.超出该数字的所有数字将被称为不需要的数字.令N为不需要部分中的(可能为零)初始9的数量,如果不是9的第一个不需要的数字导致前一个数字从零舍入,则令A = 1,否则A = 0.该图说明了这一点.
根据问题中的观察,有四种可能的情况.在以下示例中,有用数字的数量是W = 3,并且使用Matlab.
> N = 0,A = 0:不需要额外的