问题
类与对象的课后题—分数类,输出分数的小数值的时候一直有逻辑错误,找了一个小时,发现类里定义的分子分母都是int类型,在类型转换时需要显示强制类型转换。
类定义
class FRACTION
{
int numerator,denominator;
void reduce();//约分函数
public:
void set(int a , int b);
double Real();
void show();
};
错误:小数输出一直为0
double FRACTION::Real()
{
double a;
a = (double)(numerator/denominator);
cout << a << "," << numerator << "," << denominator <<"," << (numerator / denominator) << endl;
return a;
}
这里对int/int的结果转换是不对的
正确:小数输出一直为0
double FRACTION::Real()
{
double a;
a =((double)numerator/ (double)denominator);
return a;
}
解决方法:把int类型转换成double,double/double