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 sur un chiffre décimal


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 49
    Points : 43
    Points
    43
    Par défaut arrondi sur un chiffre décimal
    Bonjour
    Voici mon problème :
    J'ai créé un formulaire
    dans mon formulaire j'ai ces calcules
    un prix unitaire x par la quantité = totalHT
    totalHT x 5.5% (TVA) = TotalTTC

    L'internaute saisi juste la quantité, ensuite un script javascript calcul automatiquement le totalHT et le totalTTC

    Ensuite l'internaute valide, je recharge la page et avec un script php je récupère la quantité, refait les calculs (au cas où un ptit malin, ce serait amusé à changer le totalTTC) et enregistre la quantité et les totaux dans des variables de sessions.

    Mon problème, c'est que parfois, je n'arrive pas a avoir le même résultat au niveau TTC.
    Cela viendrait du l'arrondi sur le totalTTC.


    Exemple :
    224.5 x 2 = 449
    449 x 5.5% = 473.695

    En javascript, l'arrondi me donne : 473.69
    En php, l'arrondi me donne : 473.70


    En javascript je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var totalTTC = totalHT+((totalHT*5.5)/100);
    document.getElementById("formQuantite").totalTTC.value = totalTTC.toFixed(2);
    et en php je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $_SESSION['totalTTC'] = $_SESSION['totalHT']+(($_SESSION['totalHT']*5.5)/100);
    $_SESSION['totalTTC'] = round($_SESSION['totalTTC'], 2);
    Faut il que j'utilise autre chose que toFixed(2) pour le javascript et round(,2) pour le php ?

  2. #2
    Membre éclairé

    Femme Profil pro
    Experte JS / Conseillère en best practices / Chercheuse en programmation
    Inscrit en
    Octobre 2007
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Experte JS / Conseillère en best practices / Chercheuse en programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 741
    Points : 808
    Points
    808
    Par défaut
    Tourne-toi vers Math.round() (en JS)

  3. #3
    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

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Et pour info, toFixed ne sert pas à arrondir mais uniquement à conserver un nombre de chiffres spécifié après la virgule

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 49
    Points : 43
    Points
    43
    Par défaut
    merci
    c'est justement sur cette page
    http://javascript.developpez.com/faq...ript#NBDecimal
    que j'avais trouvé tofixed(2), et c'est bien indiqué que ça permet d'arrondir.
    Je suis resté buté sur cette solution en pensant que l'erreur venait d'ailleurs
    Merci encore
    et désolé pour le dérangement

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par cirdec49
    c'est bien indiqué que ça permet d'arrondir.
    Oui, des fois, il m'arrive de dire des âneries...

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

Discussions similaires

  1. [Math]Problème troncage ou arrondi sur des valeurs
    Par Carrel dans le forum Général Java
    Réponses: 6
    Dernier message: 07/10/2009, 15h11
  2. Décimale sur 4 chiffres après virgule
    Par Alexr dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 04/06/2008, 14h04
  3. [C++] faire un arrondi sur un double
    Par pavlacki dans le forum C++
    Réponses: 6
    Dernier message: 13/11/2005, 16h50
  4. xslt --> test sur les chiffres
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/09/2005, 13h17
  5. [langage] Erreur d'arrondi sur petits nombres
    Par Tchetch dans le forum Langage
    Réponses: 7
    Dernier message: 12/01/2005, 10h11

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