1
我已經給出了一個問題來計算人口(p0)上升或下降到一定數量的人(p)所需的年數(nbYear)if人口將增加/減少百分比(百分比)和額外的人(一年)。在java中使用混合數據類型的數學公式
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;
}
}
該代碼將是確定的,但我得到雙倍可能有損轉換爲int的錯誤。我的問題是,如何計算一個混合數據類型的數學方程(在這種情況下爲int和double)而沒有任何信息丟失?
任何幫助非常感謝!
難道真的沒有怎麼一回事,因爲這樣做會使得任何其他解決方案很多數據丟失,從而導致結果不準確。 – CWilliams
@CWilliams你可以調用'Math.round'而不是投射,但我認爲這不會更準確。考慮一個簡單的例子 - 你從2人開始,增長率爲30%。 2 * 1.3 = 2.6。第二年人口應該怎樣? 2或3? – Mureinik
如果您不想丟失數據,請使用雙打執行所有計算。如果你想顯示爲int,則將結果轉換爲int。 – Christine