Bonjour à tous lorsque je fais des calculs en java et que le résultat est proche de 0 ça me donne comme résultat 0 exemple:
ça m'affiche 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 system.out.println(new Double(9/1));
Bonjour à tous lorsque je fais des calculs en java et que le résultat est proche de 0 ça me donne comme résultat 0 exemple:
ça m'affiche 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 system.out.println(new Double(9/1));
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
Désolé j'ai commis une erreur c plutôt:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 system.out.println(new Double(9/12));
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
Effectivement, c'est plus clair .
9 et 12 sont tous les deux des entiers, donc 9/12 effectue une division entière, dont le résultat est zéro.
Ce n'est qu'après avoir calculé ce résultat que tu commences à parler de Double, et donc tu convertis l'entier zéro en double, ce qui vaut toujours zéro.
Essaie avec 9.0/12
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Pour éviter d'avoir des problèmes aussi avec les arrondis quand tu fais des opérations avec des Double ou Float, indique la lettre correspondante avec les nombres:
Java fait un cast en Integer sinon sur les nombres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Double doubleExemple = 9.0D / 12.0D; Float floatExemple = 9.0F / 12.0F;
Je suis pas sûr de comprendre ce que tu veux dire. À partir du moment où tu mets une virgule, ce n'est pas un int et il n'y a pas de cast.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
ouais, seule le f à de l'intérêt dans cet exemple car il force un calcul en float et non pas en double. Sinon dès qu'il y a séparateur décimal, pour le compilateur, c'est une double.
Merci à tous voilà ce que j'ai fais et ça marche très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DecimalFormat df = new DecimalFormat("0.00"); System.out.println(df.format(new Double(a)/new Double(b)));
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
C'est un peu overkill là tu fait
alors que tu pourrais faire direct a-> double.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a -> double -> Double -> double -> division\ b -> double -> Double -> double -> division---> resultat
Je ne comprends pas stp
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
ton new Double crée des objets inutile dont tu n'a pas besoin pour le calcul. Ton code est traduit comme ça par le compilateur:
Tu crée deux objets et tu appelle deux méthodes inutiles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DecimalFormat df = new DecimalFormat("0.00"); System.out.println(df.format(new Double((double)a).doubleValue()/new Double((double)b).doubleValue()));
Alors que tu aurais pu écrire directement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DecimalFormat df = new DecimalFormat("0.00"); System.out.println(df.format((double)a/b));
En effet a et b sont des entiers donc leur division renvoi un entier d'où le besoin de les convertir
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
C'est ce que fait l'exemple que je t'ai donnée, sans passer par la tartine du java.lang.Double qui bouffe de la resource.
Double, tu utilise quand t'as besoin d'un objet. Ici, pour ton calcul tout bête, t'as pas besoin d'objet.
Ok merci ça marche très bien
La force d'un programmeur ne réside pas dans le fait qu'il écrive des codes puissants mais dans sa capacité à les maintenir!!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager