我要获得两个值的比例,如22/100,他的结果肯定不会是整数,用double或float表示的话,它都变成0了,小数点后面的全变成了0,根本不是我想要的结果.

解决方案 »

  1.   

    可能是格式的问题,double和float应该可以的
      

  2.   

    float,duuble是可以的啊,
    (float)22/(float)100
    或者22.0/100.0
    加一个类型转化
      

  3.   

    int i=22; int j=100;
    double k=double(i)/double(j)这个不行???或者我没理解你意思哈
      

  4.   

    计算的时候转换一下,如下float fScale = (float)22/(float)100;
      

  5.   

    22/100这是整数运算,结果仍用整数表示,你可以改成22.0/100或者((float)22)/100等形式。
      

  6.   

    建议转换成字符串之后在计算
    例如:
    atof("22")/atof("100");
      

  7.   

    乘以一个浮点数就可以了,比如
    float fResult = 22 * 1.0 / 100;
      

  8.   

    我真想说风凉话,这是基本知识啊。老兄经验很有限吧。两个 int 类型的值用 / 的时候,结果是整数,小数点部分是丢失的。不管你先转换,还是在算式前面加一个 “1.0 *”也好,总之要搞成浮点型之后才能接着计算。至于容纳0.36的数据类型, double绝对够你用的了。