0.1在计算机中不能精确的表示,在转换为二进制的时候是死循环,具体转换你可以参考进制转换相关的知识。
如果步长,就是每次加的那个值是一个不能精确表示的值,那就不会精确的等于10,会出现死循环。
如果是一个可以精确表示的,比如0.5, 0.125等,则不会出现死循环。
这个程序就是死循环。
如果步长,就是每次加的那个值是一个不能精确表示的值,那就不会精确的等于10,会出现死循环。
如果是一个可以精确表示的,比如0.5, 0.125等,则不会出现死循环。
#include<stdio.h>
int main()
{
double i;
for(i=0;i!=10;i+=0.125)
printf("%.5lf\n",i);
return 0;
}
这个程序就是死循环。