Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2012, 10h22   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 23
Points : 3
Points : 3
Par défaut Chiffres après la virgule

Bonjour à tous, suite à une précédente discution (multiplication), j'utilise le code suivant pour faire des additions dans un formulaire mais il n'additionne que les chiffres avant la virgule.
Ex : 5,5 + 4 = 9
Code :
1
2
3
4
5
6
7
8
9
10
11
 
<script language="JavaScript" type="text/javascript">
	function calculchps( indice){
  var oForm = document.getElementById("formulaire");
  var oNbre = oForm.elements['nbre' +indice];
  var oPrix = oForm.elements['prix' +indice];
  var ototala = oForm.elements['totala' +indice];
  ototala.value = parseInt(oNbre.value) + parseInt(oPrix.value);
  sum_elements();
}
</script>
Comment faire pour avoir 2 chiffres après la virgule?
Merci d'avance pour votre aide.
theo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 10h49   #2
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Bonjour,

Le séparateur décimal est le point, et non pas la virgule.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2012, 11h04   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 23
Points : 3
Points : 3
Oui la saisie dans les champs je la fait avec un point.
theo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 11h09   #4
Membre Expert
 
Inscription : août 2002
Messages : 1 036
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 1 036
Points : 1 166
Points : 1 166
Utilise la méthode parseFloat au lieu de parseInt.
jeca est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/02/2012, 11h19   #5
Invité de passage
 
Inscription : novembre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 23
Points : 3
Points : 3
Impeccable!
Merci
theo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 23h39   #6
Invité de passage
 
Inscription : novembre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 23
Points : 3
Points : 3
Bonsoir à tous, toujours ce problème de 2 chiffres après la virgule mais en multipliant cette fois. Avec le code suivant, quand je multiplie par exemple:
- 3.55 * 3 = 10.6499999
- 3.15 * 1.8 = 5.67
Dans certains champs j'obtient un résultat avec 2 chiffres après la virgule et dans d'autres 7 chiffres après la virgule.
Je n'arrive pas à comprendre.
Code :
1
2
3
4
5
6
7
8
9
 
function calculchps( indice){
  var oForm = document.getElementById("formulaire");
  var oNbre = oForm.elements['nbre' +indice];
  var oPrix = oForm.elements['prix' +indice];
  var ototal = oForm.elements['total' +indice];
  ototal.value = parseFloat(oNbre.value) * parseFloat(oPrix.value);
  sum_elements();
}
Merci d'avance pour votre aide.
theo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 00h54   #7
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 795
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 795
Points : 5 119
Points : 5 119
Citation:
Envoyé par theo63 Voir le message
Bonsoir à tous, toujours ce problème de 2 chiffres après la virgule mais en multipliant cette fois. Avec le code suivant, quand je multiplie par exemple:
- 3.55 * 3 = 10.6499999
- 3.15 * 1.8 = 5.67
Dans certains champs j'obtient un résultat avec 2 chiffres après la virgule et dans d'autres 7 chiffres après la virgule.
ton code est juste. Le problème vient du fait que les ordinateurs ne savent pas réaliser des calculs avec des nombres à virgule avec précision.
http://fr.wikipedia.org/wiki/Virgule_flottante

Le mieux est de travailler avec des entiers.
regarde ce que cela donne en remplaçant ceci :
Code :
ototal.value = parseFloat(oNbre.value) * parseFloat(oPrix.value);
par :
Code :
1
2
operation = parseInt(oNbre.value*100) * parseInt(oPrix.value*100);
ototal.value = operation / 10000;
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2012, 08h33   #8
Invité de passage
 
Inscription : novembre 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 23
Points : 3
Points : 3
En effet sa fonctionne.
Merci beaucoup
theo63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h49.


 
 
 
 
Partenaires

Hébergement Web