从Object转换为Float不能正常工作c ++

时间:2016-03-08 22:06:16

标签: c++ class object

我正在尝试将一个对象转换为一个浮点数,但它似乎没有按照我想要的方式工作。

int main()
{
  Fraction A(20,6);
  float E;  
  E = A;
  cout << E << endl;
}

我已经在类

中做了一个类型转换运算符
operator float () const     
    {           
        return static_cast<float>(num/den);  //Being num and den private members, 20 and 6 in this case. 
    }

当我运行程序时,结果为3(没有小数位)。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我无法看到您的代码,但根据您观察到的行为,numden是否可能被定义为int数据类型?如果是,则num/den被视为整数除法,因此导致结果被截断。