乍看,这是个什么标题,写的是0.3?没那么简单吧,对的今天就要说说0.1+0.2。或许有人知道,那就请跳过。谢谢!!
通常我们认为的此题答案不就是0.3 吗?是的,但是计算机是否也是如此认为的呢,我们不妨试一下。结果请看图一
(ÒωÓױ)!
这个是js 代码计算的结果,感兴趣的同学可以用其他语言试下,结果是否也是如上。
看到这里有些小伙伴就不淡定了,这么简单的加法,难道有发现bug 了?
非也请继续往下看。
我们知道,计算机只认识1和0,那么这个加法怎么在计算机中表示的呢。先看下0.1在计算机中怎么表示。
学过计算机的童鞋,肯定做过这样的题目,二进制转十进制,十进制转二进制。但是在学校做的都是整数的转换。那么小数怎么转换的呢?请参考
十进制小数转二进制小数:小数部分 乘以2 取整,直到没有小数部分
二进制小数转十进制小数:二进制小数部分除以 2的n次方结果相加
如上规则计算下 0.1 表示为二进制则是: