为什么不用浮点数表示金额?

不是所有的小数都能用二进制表示,为了解决这个问题,大佬们提出了一种使用近似值表示小数的方式,并且引入了精度的概念。这就是我们所熟知的浮点数。

这其实相当有趣。当你有一个十进制系统(比如我们的系统)时,它只能表示使用基数素因数的分数。10 的素因数是 2 和 5。因此 1/2、1/4、1/5、1/8 和 1/10 都可以清晰地表示出来,因为分母都使用 10 的素因数。相比之下,1/3、1/6、1/7 和 1/9 都是循环小数,因为它们的分母使用素因数 3 或 7。

在二进制(或以 2 为基数)中,唯一的质因数是 2,因此您只能清晰地表示分母只有 2 作为质因数的分数。在二进制中,1/2、1/4、1/8 都可以清晰地表示为小数,而 1/5 或 1/10 则是循环小数。因此,0.1 和 0.2(1/10 和 1/5)在以 10 为基数的系统中是清晰的小数,但在计算机使用的以 2 为基数的系统中则是循环小数。当您对这些循环小数进行数学运算时,最终会得到剩余部分,当您将计算机的以 2 为基数(二进制)数字转换为更易于人类阅读的以 10 为基数的表示形式时,这些剩余部分会结转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值