[java] mon prg donne une erreur de calcul
Fermé
domxaline
-
Modifié par domxaline le 8/12/2014 à 13:34
issemgane Messages postés 32 Date d'inscription lundi 15 décembre 2014 Statut Membre Dernière intervention 23 décembre 2014 - 15 déc. 2014 à 14:22
issemgane Messages postés 32 Date d'inscription lundi 15 décembre 2014 Statut Membre Dernière intervention 23 décembre 2014 - 15 déc. 2014 à 14:22
A voir également:
- [java] mon prg donne une erreur de calcul
- Erreur 0x80070643 - Accueil - Windows
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Calcul moyenne excel - Guide
- Java apk - Télécharger - Langages
3 réponses
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
8 déc. 2014 à 18:35
8 déc. 2014 à 18:35
Bonjour,
C'est parce que tu penses que 3/100 donne 0.03, or cela fait 0 puisque 3 est un entier.
C'est parce que tu penses que 3/100 donne 0.03, or cela fait 0 puisque 3 est un entier.
MasterMbg
Messages postés
7
Date d'inscription
lundi 26 novembre 2012
Statut
Membre
Dernière intervention
12 mars 2015
Modifié par MasterMbg le 11/12/2014 à 15:19
Modifié par MasterMbg le 11/12/2014 à 15:19
Bonjour,
dans la classe
remplace
Ceci t'évitera la division entière...
dans la classe
remplace
public double tauxInteret=3/100;par :
public double tauxInteret=(double)3/100;
Ceci t'évitera la division entière...
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
11 déc. 2014 à 16:14
11 déc. 2014 à 16:14
Le cast en double c'est moche :-)
Il vaut mieux écrire
Il vaut mieux écrire
3.0/100.0pour indiquer explicitement que ce sont des double.
MasterMbg
Messages postés
7
Date d'inscription
lundi 26 novembre 2012
Statut
Membre
Dernière intervention
12 mars 2015
>
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
11 déc. 2014 à 16:23
11 déc. 2014 à 16:23
Peux-tu expliquer en quoi est-ce moche? ou bien qui à toi de voir si tu as un problème avec le "transtipage"... Sinon, pas mal ton idée sauf que je trouve pas important de transformer aussi le dénominateur en double (100.0) car la transformation du numérateur suffirait (le résultat d'une opération entre un double et un int est double).
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
>
MasterMbg
Messages postés
7
Date d'inscription
lundi 26 novembre 2012
Statut
Membre
Dernière intervention
12 mars 2015
11 déc. 2014 à 16:40
11 déc. 2014 à 16:40
C'est "moche" parce que cela signifie que tu créés d'abord un int, puis tu effectues une conversion en double. Ça fait donc deux étapes. C'est plus propre de créer directement un double.
Sur le même principe, une division d'un double par un int conduit à convertir le int en double, alors qu'on pourrait directement donner le dénominateur en double et ainsi s'éviter la conversion.
Sur le même principe, une division d'un double par un int conduit à convertir le int en double, alors qu'on pourrait directement donner le dénominateur en double et ainsi s'éviter la conversion.
MasterMbg
Messages postés
7
Date d'inscription
lundi 26 novembre 2012
Statut
Membre
Dernière intervention
12 mars 2015
>
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
11 déc. 2014 à 16:50
11 déc. 2014 à 16:50
Et au cas où les données ne seraient pas pas saisies en dure? penses tu que ce principe tiendrait-il le coup?
KX
Messages postés
16754
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 020
>
MasterMbg
Messages postés
7
Date d'inscription
lundi 26 novembre 2012
Statut
Membre
Dernière intervention
12 mars 2015
11 déc. 2014 à 17:20
11 déc. 2014 à 17:20
Ce serait même pire. Ici, puisque les valeurs sont en dures il est possible que le résultat soit calculé directement à la compilation. Mais si c'était dans une boucle par exemple, donc à l'exécution, tu aurais à chaque fois la conversion, donc ça prendrait à chaque fois un petit peu plus de temps, certes pas beaucoup plus, mais autant faire ça proprement et éviter les conversions inutiles.
issemgane
Messages postés
32
Date d'inscription
lundi 15 décembre 2014
Statut
Membre
Dernière intervention
23 décembre 2014
5
15 déc. 2014 à 14:22
15 déc. 2014 à 14:22
Salut, je pense que vous devez faire un cast pour la variable tauxInteret , donc vous avez deux solutions :
1 : passer par un cast : public double tauxInteret=(double) 3/100;
2 : indiquer que les deux nombre sont double, ce qui donne : public double tauxInteret=3.0/100.0;
bonne chance..
1 : passer par un cast : public double tauxInteret=(double) 3/100;
2 : indiquer que les deux nombre sont double, ce qui donne : public double tauxInteret=3.0/100.0;
bonne chance..