为什么有些十进制小数不能用有限二进制位表示呢?
比如 0.3d 约为 0.01001100... 求一个让人信服的数学解释 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:}
claws0n 发表于 2018-9-5 19:42
浮点数 = 整数 + 小数
一般上,让数字变大是相乘,让数字变小是相除,只讨论整数的乘除~只是想表达 ...
哈哈,我晓得,我自己想通了,就好像是 用多项式去逼近一个光滑的函数,总是存在误差的,~ 看看还有没有人的评论给你最佳啦! 实数有两种:有理数和无理数
无理数是永远无法精确表示的
有理数可以用最简分数来表示, 假设是p/q
若不存在n,使得10^n 为q的倍数,则以十进位表示时 其为无限循环小数
若不存在n,使得2^n 为q的倍数,则以二进位表示时 其为无限循环小数
理由应该满简单的{:10_245:}
页:
[1]