因为软件程序 BUG 导致惨重代价的几个案例

1947 年 9 月 9 日下午 3:45,美国计算机科学家兼美国海军少将 Grace Murray Hopper 在 Harvard Mark II 计算机日志中记录了第一个计算机 Bug。她写道:“发现 Bug 的第一个实际案例。”

在这个领域不犯任何错误可能会很难,但幸运的是,并不是所有的错误都如此昂贵。在这份总结列表中,我收集了一些一直引起我注意的错误。

亚利安5号运载火箭爆炸事件

1996 年 6 月 4 日,欧洲空间局(European Space Agency,ESA)发射的亚利安 5 号(Ariane 5)运载火箭在法属圭亚那的库鲁发射场发射后仅 40 秒就爆炸了。这枚火箭经过长达十年的研发,耗资 80 亿美元后进行首飞,但这一 Bug 的结果导致了 3.7 亿美元的损失。

首飞失败的原因是整数溢出,这是计算机编程中一个普遍存在的错误。在本例中,有人试图在 16 位空间中设置 64 位数字。

PayPal 意外向某人支付 92 千万亿美元

当 Chris Reynolds 打开他的 PayPal 电子邮件对账单时,这位宾夕法尼亚州公关主管的账户余额显示为 92,233,720,368,547,800 美元。

在 64 位数字的世界里,这个数字太过庞大,意味着存在编程错误。所幸这一错误很快就被发现了,当他再次登录时,他的账户已经归零。

PayPal 表示愿意为 Reynolds 选择的事业捐赠一笔数额不详的资金。

Windows 计算器 Bug

这个 Bug 存在于大多数 Windows 版本中(Windows 10 除外),包括 Windows XP、Windows 7、Windows Vista 和 Windows 8。如果你有这些版本中的一个,那么你可以在你的操作系统中找到这个 Bug。

步骤:打开 Windows 计算器。输入 4,取平方根,你会得到 2。然后再减去 2。这时,你将在不同版本的 Windows 看到不同的结果,而不是 0。

这个 Bug 的原因是计算器管理 sqrt 操作的方式。结果将保存为浮点数而不是整数,当涉及到浮点计算时出现精度错误,这就是你可以看到的结果。

Microsoft 承认在计算器应用程序中存在这个 Bug,并在 Windows 10 Build 17639 中修复了这一 Bug。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200807A0WNDN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券