1.
#include<iostream.h>
int main()
{float i;
for(i=0.0;i<=1.0;i+=0.1)
cout<<i<<",";
cout<<i;
if(1<=1.0)
cout<<"\nok";
cin.get();
        return 0;
}
只输出到0.9????????????
2.
新建文本文档->输入'电信'->关闭保存再打开->输入'联通'->关闭保存再打开
为什么???????????????????

解决方案 »

  1.   

    这个主要是到0.9的时候,0.9+0.1=1 而不是1.0,而i是float,所以就不输出了
      

  2.   

    问题1:
    与你的编译器有关吧.我的输出是1.000000.flaot的数据的比较与取舍是有别与int的.
    问题2:
    不知所云.
      

  3.   

    if(1<=1.0)
    这一句有问题,是1还是i???
    int型和float型不能比较大小。
      

  4.   

    /*#include<iostream.h>
    int main()
    {float i;
    for(i=0.0;i<=1.0;i+=0.1)
    cout<<i<<",";
    cin.get();
            return 0;
    }*/
    问题2 是这样的
    新建文本文档->输入'电信'->关闭保存再打开->删掉'电信'输入'联通'->关闭保存再打开
    为什么???????????????????
      

  5.   

    回复以上各位,通过断点,可以看到i是等于1.00000的,为什么不可以比较,
    我在VC6,BCB6下都是输到0.9
    问题2 ,
    会变为一个黑方块,为什么?????????
      

  6.   

    why???????
    why???????
    why???????
    why???????
    why???????
      

  7.   

    问题1,用vc2005还是到0.9呀,why
    why????????
      

  8.   

    问题1:精度问题i是float型,1.0常量是double型 float型1.0与double型1.0并不相等。建议浮点数这种有=号比较的一律用double型。
    问题2:记事本采取的是一种文本文件“智能识别”,也就是在GBK、GB2312、UTF8等几种编码文件中智能识别,对于既符合一种规则又符合另一种规则的文件,采取的优先级中GB2312排在了后面,这样当输入GB2312的“联通”,就出现这样的情况。其实解决的该问题的方法也很简单,在保存文件时候选择Unicode编码就OK了。