当前位置:  开发笔记 > 编程语言 > 正文

当浮点数小于1时,函数返回0

如何解决《当浮点数小于1时,函数返回0》经验,为你挑选了1个好方法。

我有这个代码来计算二叉树的主要分支之间的差异,重要的是最终的.调试我到达最后一个表达式:

return difRama/total;

这将始终返回0到1之间的小数,以百分比表示.我得到的情况如下:

返回5/15

返回4/10

float Arbol::diferenciaRamas(pnodo rama1, pnodo rama2){
    int total, difRama, pesoIzq, pesoDer;

    /* Calculamos pesos rama izq yder*/
    pesoIzq = pesoRamificaciones(rama1);
    pesoDer = pesoRamificaciones(rama2);

    /* Diferencia de peso entre ramas */
    difRama = abs(pesoIzq - pesoDer);

    /* Total de peso del arbol */
    total = (pesoIzq+pesoDer);

    /* Si el total es 0 o la diferencia es 0 */
    if(total == 0 || difRama == 0)
        return 0;

    /* Porcentaje de diferencia */
    return difRama / total;

}

问题是函数总是返回0,任何想法?



1> JSF..:

该分裂发生之前从隐式转换intfloat.

你需要从一个显式转换intfloat除法之前.

return (float)  difRama / total;

您应该通过运算符优先级规则知道上面的转换应用于difRama除法之前(而不是除法的结果).

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有