四舍五入惹的祸

2023-02-20 08:10金钟河
读者 2023年2期
关键词:温哥华小数点计算机软件

☉〔韩〕金钟河

叶蕾蕾 译

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(缺陷)并不大,它引发的后果却十分骇人。

猜你喜欢
温哥华小数点计算机软件
基于C语言的计算机软件编程
浅谈不同编程语言对计算机软件开发的影响
下一站,温哥华!
温哥华 自然倾城
浅谈基于C语言的计算机软件程序设计
在温哥华坐“老年人专车”
温哥华的城市作业本
小数点移到哪去了
神州修车救援APP取得计算机软件著作权
超级小数点