Google 计算器处理大额数字减法时出错(图)

作者: 来源:腾讯科技 日期:2008-8-26

Google计算器在处理大额数字的计算时会出现错误。对于像Google这样的公司而言,出现这一错误确实不应该。

报道称,在处理大额数字的计算时,Google计算器的错误并不是始终如一的出现。例如,2,999,999,999,999,999减2,999,999,999,999,998的答案应该是“1”,但Google计算器的结果却显示为0;1,999,999,999,999,999减1,999,999,999,999,995的答案是“4”,但Google计算器的结果却显示为“0”;但是1,999,999,999,999,999减1,999,999,999,999,993,Google计算器却给出了正确的答案“6”。再比如,400,000,000,000,002减400,000,000,000,001的答案是“1”,Google计算器的结果是“0”;但400,000,000,000,002减400,000,000,000,000却给出了正确答案“2”。

Google 计算器处理大额数字减法时出错

是什么造成了这一原因的出现呢?大额数字通常有一个两部分的浮点格式组成,即用尾数乘以10的次方。例如说,Google在第二季度的营收为12.5亿美元,也可以表示为1250000000美元或1.25乘以10的9次方,或1.25 x 10^9美元。浮点格式有助于数字的延展,但第一部分仅保留了有限的部分数字,因此便会出现计算偏差的问题。

计算机上的精确计算此前需要通过二进位制完成,也就是说,当人们在计算机上输入十进位制的计算数据之后,计算机先需要把数字转化为二进位制数字,在计算完成之后,再把数据转化为十进位制数据。不过随着科技的进步,不仅是IBM的Power6处理器,即便是“深蓝”也能够通过十进位制完成数字计算。

此前,微软的Excel计算也曾出现过这一问题,英特尔奔腾处理器刚推出的时候拥有浮点数除法不正确的错误(FDIV Bug),但两家公司都已对此进行了修改。从理想的角度出发,Google应当对计算器中出现的错误进行修改。

相关文章