精度转换的问题,问题应该出在i-=0.5上,这个0.5默认应该不是double的,在转换时会出现精度问题.
你看下I的值是多少
经测试,0.5是double类型的
@刘宏玺: 我记得默认是float
@吴瑞祥:
@刘宏玺: 看了.确实了double这就不太明白是哪里丢失精度了撒``
@吴瑞祥: 因为二进制小数转换成十进制小数就会不精确了,只有 0.5 0.25 0.125 之类的是准确的
@刘宏玺: 哦,看了下大概的意思是,小数不停乘以2最后能为0,才不会丢失精度,
我刚刚测试了一下,发现确实存在这个问题,我认识是二进制存小数不准确的问题导致的,整数肯定不会出问题
浮点数的精度本来就是可变的