Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème à l'allure simple

Decimale

Sujet résolu
    28 novembre 2010 à 2:19:42

    Bonjour à tous,

    J'ai fait un script permettant à l'utilisateur de rentrer un nombre et de choisir le nombre de virgules restantes, par exemple:
    25,1042 (2 virgules) => 25,10
    12,950148654 (4 virgules) => 12,9501
    62,9207 (3 virgules) => 62,931

    Il me semble qu'il y avait une fonction existante du genre to.divide(nombreDeDecimalesChoisi), mais puisque je ne la trouvais pas avec des recherches... j'ai décidé de la bâtir moi-même ^^
    Toutefois, le résultat affiché est toujours Nan, donc je crois que l'erreur provient du paramètre nbdecimale

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
      <title>Titre de la page</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    
      
    </head>
    
    
    <body>
    
    <script type="text/javascript">
    
    var nombre = prompt("Nommez un nombre à virgule ?");
    var nbdecimale = prompt("Combien de decimales désirez-vous ?") 
    
    function decimale(arg1) {
    nombreArrondi = Math.round(nombre * Math.pow(10, arg1)) / Math.pow(10, arg1);
    alert(nombre + " arrondi à " + nbdecimale + " virgule(s) est: " + nombreArrondi);
    }
    
    decimale(nbdecimale);
    
    </script>
    
    </body>
    
    </html>
    


    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      28 novembre 2010 à 10:31:46

      J'ai eu un problème dans la même lignée que toi ici.

      Dans ton cas je pense qu'il faut utiliser parseFloat() sur tes nombres décimaux et parseInt() sur nbdecimale.
      • Partager sur Facebook
      • Partager sur Twitter
        28 novembre 2010 à 12:06:15

        Il y a la méthode toPrecision(nb) où nb représente le nombre de chiffres significatifs à afficher, ou la méthode toFixed(nb) où nb représente le nombre de décimales à afficher.

        Dans les deux cas, le nombre sera éventuellement arrondi en fonction de la première décimale non affichée.


        var nb = parseFloat(prompt("Nommez un nombre à virgule ?")); // parseFloat convertit en Number à virgules
        var decimales = parseInt(prompt("Combien de decimales désirez-vous ?"),10); // parseInt convertit en Number entier
        
        alert(nb.toPrecision(decimales));
        alert(nb.toFixed(decimales));
        
        • Partager sur Facebook
        • Partager sur Twitter
          28 novembre 2010 à 19:20:10

          J'ai essayé avec ton script Golmote, pourtant, lorsque j'entre par exemple 25,401

          Le premier résultat est => 25 (mais il m'importe peu)
          Le deuxième est => 25.00 (il n'écrit pas 25,40, ce qui m'importe beaucoup !)
          De plus, j'aimerais comprendre, si possible, pourquoi mon script ne fonctionne pas :x
          Merci :)
          • Partager sur Facebook
          • Partager sur Twitter
            28 novembre 2010 à 19:22:42

            La virgule en JavaScript s'écrit avec un "." et non pas une virgule "," o_O
            • Partager sur Facebook
            • Partager sur Twitter
              28 novembre 2010 à 19:33:39

              Ah oui, merci ^^'
              Stupide erreur de ma part sur les tests :D
              • Partager sur Facebook
              • Partager sur Twitter

              Problème à l'allure simple

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown