下段程序:float a;
int b=5,c=6;
a=(float)b/c;为什么得到的a总是0呢,我用sdk编程

解决方案 »

  1.   

    你写的是console程序吧,win32的程序试过没有
      

  2.   

    一样有问题,关键是我写的win32 sdk程序,其他环境如tc,都没问题
      

  3.   

    通通有问题,我都快急死了,谁帮我看看程序,留下mail,或者给我发mail:[email protected],谢谢
      

  4.   

    float a;
    int b=5,c=6;
    a=(float)b/c;可以写作
    float a;
    int b=5,c=6;
    int tmp=b/c;//由于tmp是整数,所以小数部分被扔掉,故tmp=0
    a=(float)temp=0
      

  5.   

    你们都用什么编译呀,我用的是vc6.0,zhuojohn(zhuojian) 你的也不行
      

  6.   

    float a;
    int b=5,c=6;
    a=(float)b/(float)c;
      

  7.   

    嗨,这些简单的算法我都知道,我觉得是编译的问题,我上面不是说了吗,用console程序一点问题没有
      

  8.   


    a=(float)(b/c);
    试试。
      

  9.   

    各种编译器是不一样的啦!!a=(float)b/c;
    可以理解为
    1-->a = (float)((float)b)/((int)c)等同于a = (float)(((int)(float)b)/((int)c));
    2-->a = (float)(((int)b)/((int)c)));也就是肯定结果是0.
    3--> a = ((float)b)/((float)c);这是正确的!
    最好的办法是书写详细点啦!
      

  10.   

    应该在使用前先将它们的类型进行转换。
    float xa = (float)a;
    float xb = (float)b;
    c = xa/xb;