Probleme de calcule

Résolu
cs_BURN Messages postés 24 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 8 avril 2010 - 8 avril 2010 à 05:14
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 - 8 avril 2010 à 18:35
Bonjour à tous!

J'ai une fonction très simple de calcule qui est la suivante

<script language="JavaScript">
function Calcule(form)
{
form.thoraire.value=parseInt(form.sal.value)/parseInt(form.nbh.value);
}
</script>	


Le problème, lorsque je fais le calcule, il arrive que la réponse n'est pas bonne. Exemple : 370.50 / 39 donne 9.487179487179487 alors que la réponse devrait être 9.50

Est-ce que quelqu'un a une idée ?

Est-ce possible aussi de limiter le nombre à 2 chiffre après la virgue ?

Merci de m'aider!

3 réponses

Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
8 avril 2010 à 06:41
Bonjour,

parseInt transforme le paramètre en un entier. Un entier est un nombre sans décimal. Ton 370.50 en entier est 370 et 370/39 donne 9.487179487179487

Tu devrais utiliser parseFloat qui transforme le paramètre en nombre à virgule flottante.
3
cs_BURN Messages postés 24 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 8 avril 2010
8 avril 2010 à 18:20
Super ça marche!

Merci beaucoup de ton aide! :-)

Est-ce que tu as une idée s'il est possible par la suite de limiter le nombre de chiffre après la virgule ?


Merci!
0
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
8 avril 2010 à 18:35
Tu peux arrondir ton nombre avec la méthode Math.round. Comme il n'y a pas de paramètre pour la précision il faut juste que tu fasses un multiplication par 10^n et division par 10^n après l'arrondissement (n est la précision).

Exemple :
// Ceci donne 3.14
var nombre = Math.round(parseFloat("3.1415")*100) / 100;
0
Rejoignez-nous