C ++方法返回0

时间:2015-04-06 05:58:19

标签: c++ methods division

我有这个返回0的方法,我不知道为什么。

方法:

double Fraccion::getDivision()
{
    double d;
    d = numerador/denominador;
    cout << fixed << numerador << "/" << denominador << "=" << d << endl;
    return d;
}

这是输出控制台:

Introduce el numerador //This is in the main file
5
Introduce el denominador //This is in the main file
25
5/25=0.000000
Division: 0.000000

2 个答案:

答案 0 :(得分:1)

由于numeradordenominador是整数类型,numerador/denomindor也有整数类型。对于整数除法,5/250。然后将此结果转换为double 0.0。如果需要浮点除法,则需要使用显式转换或使用适用的隐式转换来转换操作数。例如,

d = 1.0*numerador / denominador;

答案 1 :(得分:1)

根据给定的输出,numeradordenominador似乎是int。因此,将它们分开将在integer division中完成(即仅占整个部分),然后才会被提升为double。您可以通过在潜水前明确施放来避免这种情况:

d = ((double) numerador)/denominador;