四舍五入惹的祸

作者: 〔韩〕金钟河

四舍五入惹的祸0

1982年1月,温哥华证券交易所公布了新的股票指数。该指数的初始值是1000.000,22个月后,滑到了520左右。这段时间没有发生过大的经济萧条或外汇危机。股票指数为什么缩水了近一半呢?

股票指数是在证券交易所上市的所有股票售价的基础上进行核算的。计算机平均每天要对股票进行2800次左右的计算和更新,计算时会保留小数点后3位。当时,温哥华证券交易所的计算机软件计算股票指数时,没有将小数点后第四位进行四舍五入,而是直接舍去。如股票指数540.32567,计算机会去掉小数点后第三位之后的数字,这样最终结果就变成了540.325。相反,如果四舍五入,股票指数就是540.326。

一次计算中,直接舍去和四舍五入,只产生0.001的差异。但这种差异,每天少则累积几百次,多则几千次。不断累积,终于导致股票指数开始下滑。温哥华证券交易所的股票指数,与小数点后第四位数字四舍五入的正常值相比,每天都会下滑1到2个百分点。22个月过去后,股票指数与刚开始时相比,几乎少了一半。

最终,温哥华证券交易所承认,是计算机软件计算股票指数时出现了问题。他们公布了最新的股票指数,并对之前22个月的交易记录重新进行核算。结果显示,股票指数从524.810上升到了1098.892,几乎多出一倍。软件bug(缺陷)并不大,它引发的后果却十分骇人。

(杨子江摘自人民邮电出版社《致命Bug:软件缺陷的灾难与启示》一书,〔德〕丹尼尔·斯托尔图)

上一篇: 史铁生同学
下一篇: 墨色光阴

经典小说推荐

杂志订阅