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 :

Arrondir à 2 décimales


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut Arrondir à 2 décimales
    Bonjour à tous,

    pour obtenir un résultat de calcul arrondi à 2 décimales j'utilise l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resultat=(Math.round(resultat*100))/100;
    n'existe-t-il pas quelque chose de plus direct ?

    comme par exemple en PHP :

    float round ( float val , int precision )

    Ou int precision permet de définir la précision souhaitée.

    Merci d'avance pour vos réponses

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ce qui m'etonne c'est que ça t'arrondisse à deux decimales ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resultat=(Math.round(resultat*100))/100;
    je ne vois le 2 nulle part ...

    il manque le ,2

    et cette methode permet de contourner le bug de la virgule flottante
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Ha tu me parle malheureusement de quelque chose que je ne connais pas mais que j'aimerai bien connaitre

    pour ce qui concerne mon calcul, ben si ça m'arrondi à 2 décimales.

    Si j'ai par exemple resultat= 12.254789

    Math.round(resultat*100) = 1225

    divisé par 100 = 12.25

    Mais tu as l'air de me parler de quelque chose de mieux ?

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    regarde du coté de toFixed toPrecision


    mais tu seras toujours confronté au problème de la virgule flottante sous javascript qui entraine parfois des resultats innatendus

    pour ton cas de figure il suffit de faire un prototype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type='text/javascript'>
    Number.prototype.toDecimal=function(precision){
     dec=10
     return  		Math.round(this*(Math.pow(10,precision))) /(Math.pow(10,precision));
       }
    var testo=12.53215682132
     alert(testo.toDecimal(4))  
     
     </script>

    a noter que par curiosité j'ai collé une precision negative et du coup ça arrondi à la dizaine, la centaine ...etc !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    Merci de ta réponse SpaceFrog,

    Je vais effectivement faire un prototype

    d'autant qu'après une explication un peu laborieuse sur prototype je vois mieux maintenant comment l'utiliser

    Merci encore

    PS pour voir mes problèmes avec prototype :
    http://www.developpez.net/forums/d64...ype-prototype/


  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    530
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 530
    Par défaut
    J'ai regardé du coté de tofixed() et c'est ce qu'il me faut pour afficher un résultat qui ne nécessitera plus de calculs ultérieur.

    Merci

    bonne fin de journée

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

Discussions similaires

  1. arrondir valeur décimale
    Par jman94 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 30/06/2010, 17h31
  2. [00] arrondir à trois décimal
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2008, 09h23
  3. Arrondir à 2 décimales une variable
    Par Domino40 dans le forum VBA Word
    Réponses: 4
    Dernier message: 26/11/2008, 15h44
  4. arrondir à une décimale
    Par tomas dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/11/2007, 15h19
  5. Arrondir à deux décimales
    Par sweety107 dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 16h16

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