比如下面这样一个问题:
---------------------------------------------------
0.2化二进制是
0.2*2=0.4,整数位为0
0.4*2=0.8,整数位为0
0.8*2=1.6,整数位为1,去掉整数位得0.6
0.6*2=1.2,整数位为1,去掉整数位得0.2
0.2*2=0.4,整数位为0
0.4*2=0.8.整数位为0
就这样推下去!小数*2整,一直下去就行
这个数整不断
0.0011001
---------------------------------------------------
这个乘2 到底要乘到什么时候? 为什么最后得出0.8就停止了?
就是说小数点 转二进制 会一直循环吗? 我只需要把会循环的数字写出来就够了?
不过我问的不单只是0.2 ,还有包括其他的小数点
不是说所有的十进制小数转换成二进制数后都是循环小数,有的可以精确表达,但大多数是无法精确表达的,只能用循环小数和无穷小数来表达,只好约等于小数点后若干位的精确度。
追问能举例几个能精确表达的吗? 我想知道要乘到什么时候
追答0.5d=0.1b,0.25d=0.01b,0.125d=0.001b,0.0625d=0.0001b。是不是看出点规律来了:
1/2=0.1b,1/4=0.01b,1/8=0.001b,1/16=0.0001b。凡是分母是2的整数次幂的分数(小数),都可以用二进制小数精确表达。当然,它们的和也就可以用二进制小数精确表达。例如1/2+1/4=3/4=0.75d=0.11b。
我知道,但我问的不是这个, 我问的是 在最后 0.4*2=0.8 , 为什么0.8不继续乘2?
要达到什么条件才停下来