浮点运算,为何0.1+0.2=0.30000000000000004?而非0.3!

浮点运算,为何0.1+0.2=0.30000000000000004?而非0.3!

小数的进制表示了1的细分的份数,十进制的1能细分10份,
二进制的1只能细分两份。一斤肉用十进制切可以切出1两来,
用二进制只能切出五两,去买三两肉,十进制可切三个一两给你,
用二进制就麻烦了,给你五两太多,只能把五两肉再切2份,
成了二两五,又不够三两,就再把剩下的二两五再切2份,
成了一两二分五,二两五加上一两二分五就超了三两了,
不行,要把那另一个一两二分五再切2份去合成三两肉……
但这样切下去永远不能给你正好的三两肉。

猜你喜欢

转载自blog.csdn.net/weixin_39200308/article/details/81937696