笨蛋!连0.2这么简单的数字都搞不定!你被炒了!

本文探讨了十进制与二进制转换的奥秘,揭示了为何十进制小数在计算机中无法精确表示的原因。通过漫画形式,深入浅出地解释了IEEE754浮点数标准及其局限性,并介绍了在金融领域如何使用BigDecimal来实现精确计算。

后记:

计算机的本质决定了它是一个二进制的世界,人类熟悉的十进制数字需要转行成二进制才能被计算机处理。但是这个转化的过程却会遇到问题。从漫画中可以看出十进制整数都能精确地转化为二进制表示,但是十进制小数却并不一定。你可以用你熟悉的编程语言如Java、Python, JavaScript快速地重现这一现象。

对于工程计算和科学计算,一个非常近似的二进制小数是可以满足要求的,但是在商业计算尤其是金融领域,必须要精确地表示,精确地计算,这个时候就不能直接使用float,double等类型了,需要用一个工具类如BigDecimal来进行处理。

值得注意的是,国际上对浮点数的存储制定了规范,即IEEE 754, 这个存储格式略为复杂,但其不能精确表示十进制小数的本质是不变的。想要了解存储细节的同学可以参考这篇文章《看完这篇文章,你一定理解什么是浮点数了!》

你看到的漫画只是冰山一角,在公众号回复关键字“漫画”可以看到更多精彩文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值