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

Mathematical equation with mixed data types in java

我遇到了一个问题,要计算人口 (p0) 增加或减少到一定数量 (p) 所需的年数 (nbYear),如果人口 increas/decrease 按百分比(百分比)和每年增加的人数(8 月)计算。

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)的数学方程式?

非常感谢任何帮助!

如果不显式处理数据丢失,您不能将 double 值分配给 int 变量。一种方法是明确地使用缩小转换为 int,假设人口不能增加一部分人:

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