404NOT 发表于 2018-9-5 19:18:25

为什么有些十进制小数不能用有限二进制位表示呢?

                        比如 0.3d 约为 0.01001100...

404NOT 发表于 2018-9-5 19:26:44

求一个让人信服的数学解释

claws0n 发表于 2018-9-5 19:42:39

404NOT 发表于 2018-9-5 19:26
求一个让人信服的数学解释

浮点数 = 整数 + 小数

一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~只是想表达一个相对的概念
整数转二进制是用除法,反之,小数转二进制是用乘法
                0.2
0.2 * 2 == 0.4
0.4 * 2 == 0.8
0.8 * 2 == 1.6>> 0.6
0.6 * 2 == 1.2>> 0.2

所以这里从 0.2 开始会变回 0.2,有了周期性,死循环了~ {:10_254:}

404NOT 发表于 2018-9-5 19:50:33

claws0n 发表于 2018-9-5 19:42
浮点数 = 整数 + 小数

一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~只是想表达 ...

哈哈,我晓得,我自己想通了,就好像是 用多项式去逼近一个光滑的函数,总是存在误差的,~   看看还有没有人的评论给你最佳啦!

fc1735 发表于 2018-9-5 21:22:16

实数有两种:有理数和无理数
无理数是永远无法精确表示的
有理数可以用最简分数来表示, 假设是p/q
若不存在n,使得10^n 为q的倍数,则以十进位表示时 其为无限循环小数
若不存在n,使得2^n 为q的倍数,则以二进位表示时 其为无限循环小数

理由应该满简单的{:10_245:}
页: [1]
查看完整版本: 为什么有些十进制小数不能用有限二进制位表示呢?