IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

arrondi math.round


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut arrondi math.round
    Bonjour,

    Je cherche à mettre a jour une valeur ht en javascript en fonction du montant des frais de port...

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    function change_port(valeur,ht)
    {
      valeur=parseFloat(valeur);
      ht=parseFloat(ht);
     
      //On met a jour le montant du port
      document.getElementById('montant_port').innerHTML=valeur+' € TTC';
     
      //On calcul la valeur HT du port
      var valeur_ht=valeur/1.196;
     
      alert('ht='+ht+'portht='+valeur_ht);
     
      valeur_ht=parseFloat(valeur_ht);
      valeur_ht=valeur_ht*100;
      valeur_ht=Math.round(valeur_ht);
      valeur_ht=valeur_ht/100;
     
      alert('ht='+ht+'portht='+valeur_ht);
     
      //On ajoute au montant HT le port HT
      ht=ht+valeur_ht;
     
      alert('ht='+ht+'portht='+valeur_ht);
    }
    Voici ce que me renvoient les alert avec valeur=6 et ht=44.59:
    1er: ht=44.59 portht=10.033444816053512
    2è: ht=44.59 portht=10.03
    3è: ht=54.6200000000000004 portht=10.03
    Pourquoi ht vaut 54.6200000000000004 au lieu de 54.62?
    Comment gérer ce problème qui n'apparait pas dans tous les cas?

    En effet, il y a des cas où je n'ai pas de problème, et certains cas, où j'ai ce problème d'arrondi...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Une recherche s'impose avec "arrondi" ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Merci du conseil!
    J'ai utilisé ca:
    Maintenant, je n'ai plus de problème...
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonctionnement de Math.Round
    Par laedit dans le forum Framework .NET
    Réponses: 4
    Dernier message: 26/01/2010, 18h33
  2. Petit soucis avec Math.round()
    Par Adenora dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 02/11/2008, 21h13
  3. System.math.round problème d'arrondi..
    Par Destiny dans le forum C#
    Réponses: 8
    Dernier message: 09/09/2007, 10h54
  4. arrondir un chiffre sans utiliser math.round
    Par calitom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2007, 17h57
  5. Comportement étrange de Math.round
    Par opasteur dans le forum Langage
    Réponses: 4
    Dernier message: 15/09/2006, 13h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo