如果人口增加/减少,我已经有一个问题来计算人口(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)而没有任何信息丢失?
非常感谢任何帮助!
答案 0 :(得分:0)
如果没有明确处理数据丢失,则无法为double
变量分配int
值。实现这一目标的一种方法是明确使用缩小的强制转换为int
,假设人口不能增加一部分人:
p0 = p0 + (int)(p0 * percent) + aug;
// Here --^