On m'a donné un problème pour calculer le nombre d'années (nbYear) qu'il faudrait pour qu'une population (p0) augmente ou diminue jusqu'à un certain nombre de personnes (p) si la population augmenterait/diminuerait selon le pourcentage (pourcentage) et les personnes supplémentaires (août) par année.Une équation mathématique avec des types de données mixtes en 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;
}
}
Ce code serait ok, mais j'obtenir une conversion possible de la double lossy int erreur. Ma question est comment pouvez-vous calculer une équation mathématique avec des types de données mixtes dans (ce cas int et double) sans perte d'information?
Toute aide est très appréciée!
Est-il vraiment pas d'autre solution beacuse faisant cela ferait de la beaucoup de perte de données rendant ainsi le résultat inexact. – CWilliams
@Cilliams vous pourriez appeler 'Math.round' au lieu de lancer, mais je ne pense pas que ce serait plus précis. Considérons un cas simple - vous commencez avec 2 personnes et vous avez un taux de croissance de 30%. 2 * 1,3 = 2,6. Quelle devrait être la population en deuxième année? 2 ou 3? – Mureinik
Si vous ne voulez pas de perte de données, effectuez tous les calculs avec des doubles. Si vous voulez afficher int, cast à int le résultat. – Christine