java中混合数据类型的数学方程

时间:2017-09-24 16:26:03

标签: java equation algebraic-data-types

如果人口增加/减少,我已经有一个问题来计算人口(p0)上升或下降到一定数量的人(p)所需的年数(nbYear)按百分比(百分比)和一年的额外人数(八月)。

public static int nbYear(int p0, double percent, int aug, int p) {
    int nbYear = 0;
    while(p0 < p){
      p0 = p0 + (p0 * percent) + aug;
      nbYear = nbYear + 1;
    } 
    return nbYear;
}

}

这段代码没问题,但是我得到了从double到int错误的有损转换。我的问题是你如何计算混合数据类型的数学方程(在这种情况下为int和double)而没有任何信息丢失?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果没有明确处理数据丢失,则无法为double变量分配int值。实现这一目标的一种方法是明确使用缩小的强制转换为int,假设人口不能增加一部分人:

p0 = p0 + (int)(p0 * percent) + aug;
// Here --^