J'ai une situation où j'ai besoin de savoir combien de fois un int va dans un nombre décimal, mais dans certains cas, je perds de la précision. Voici la méthode:Java - Comment éviter la perte de précision lors de la division et de la conversion en int?
public int test(double decimalAmount, int divisor) {
return (int) (decimalAmount/ (1d/divisor));
}
Le problème est si je passe en 1.2 comme la quantité décimale et 5 comme le diviseur, je reçois 5 au lieu de 6. Comment puis-je restrusture ce donc je sais combien de fois 5 entre dans la quantité décimale en tant qu'int?
Je pense que vous devez donner une version plus généralisée de la question - les termes que vous utilisez de sens que pour les entiers, soit 5 divise en 1,2 = 0/Si vous améliorer la définition Je suppose que vous obtiendrez la réponse car je suspecte que le problème est dû à l'arrondissement – Mark
Cela n'a rien à voir avec l'arrondi et tout ce qui concerne la formule. Une décimale divisée par un int est simple (int) (decimalAmount/divisor). Je pense que c'est ce que David recherche. À l'heure actuelle, ce code fait une multiplication de decimalAmount et divisor. –