Pourquoi la division entière de code à donner une mauvaise réponse?
J'ai une question très simple division en Java (c'est un produit de la quantité de la production par heure), mais chaque fois que je fais cette division, j'obtiens des erreurs étranges:
float res = quantity / standard;
J'ai essayé ci-dessus division avec plusieurs valeurs et je reçois toujours des erreurs, cependant celui que j'ai essayé partout ailleurs et eu droit a ceci:
Partout dans le monde:
13.6 = 6800 / 500;
Java:
13.0 = 6800 / 500;
J'ai fait des recherches BigDecimal et BigInteger, cependant, je n'ai pas trouvé une façon de créer cette division, est-il une autre façon de faire cette division en Java sans avoir des erreurs de précision??
Toute aide sera grandement appréciée.
- "Partout dans le monde" vous ne pouvez pas réaffecter la valeur de littéraux 😉
- Vous devez utiliser
double
à moins qu'il existe un besoin spécifique à l'utilisationfloat
. - "Partout dans le monde" exclut le C, le C++?
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la division des nombres entiers, ce qui signifie que vous êtes en utilisant division entière.
Dans la division entière de la partie décimale du résultat est jeté.
Essayez ce qui suit:
Au-dessus des forces du numérateur d'être traité comme un
float
qui à son tour favorise le dénominateur de flotter ainsi, et d'un flotteur de la division est effectuée au lieu d'un int-division.Noter que si vous faites affaire avec des littéraux, vous pouvez modifier
pour inclure le
f
suffixe de faire le dénominateur d'un flotteur:Si vous inquiet au sujet de la précision, je voudrais suggérer à l'aide de
double
qui a plus que doublé le nombre de chiffres de précision. Cependant virgule flottante seulement le représente avec précision les fractions qui sont une somme ou d'une puissance de 0.5. Cela signifie 0.6 est seulement d'environ représentés. Ce n'est pas un problème avec appropriée de l'arrondissement.ou
float
et si vous avez un million de ces, il peut économiser de 4 MO. Si vous n'avez pas des millions de ces il probablement pas la peine de s'inquiéter au sujet de.Dans mon cas, j'ai fait ça:
Au lieu de le "corriger" :
hi essayer celui-ci, il peut aider à s'acquitter de votre obligation
HTML: