日期:2014-05-20  浏览次数:20676 次

菜鸟请教基础的小问题
for(int   i=1.0;i <=2.0;i+=0.1)中,值永远不变.这是为什么呢?
十分感谢.见笑了,不耻下问.哈哈

------解决方案--------------------
int改为double
------解决方案--------------------
浮点型不需要加f吗???

------解决方案--------------------
i 是int型,1加0.1后还是还是1,所以值永远不变
------解决方案--------------------
同意楼上
------解决方案--------------------
恩,没错,正解!
------解决方案--------------------
Top

回复人:xsyl_1982(黑欲浪子) ( ) 信誉:100 2007-01-22 19:03:30 得分:0


? i 是int型,1加0.1后还是还是1,所以值永远不变


说点子上了
------解决方案--------------------
没追求,如果是java的话语法都错的,int 改double才能运行
------解决方案--------------------
楼上的为什么要这么说呢?
------解决方案--------------------
nie7870120() ( ) 信誉:100 Blog 2007-1-22 19:45:34 得分: 0



没追求,如果是java的话语法都错的,int 改double才能运行


有理!这段程序能编译过吗?怎么能运行.

------解决方案--------------------
因为i是整形变量,在执行i+=0.1的时候先把0.1转化为整型(也就是0),然后i+=0,不就不会改变i的值了么,所以值就不变了!
------解决方案--------------------
i 是int型,1加0.1后还是还是1,所以值永远不变
------解决方案--------------------
都成int了,i+=0,一直不变
------解决方案--------------------
int 和浮点点型的差距就在这里
------解决方案--------------------
.................