2010-09-09 2 views
2
perc = 15/30; 
//result=Math.round(perc*100)/100 //returns 28.45 
$('#counter').text(perc); 
$('#total').text(count); 

renvoie 0.5% qui est supposé être 50.00% ... comment résoudre ce problème? : SJavaScript - division incorrecte

+40

Multiplier par 10 0. Je ne vais pas poster cela comme une réponse, parce que c'est trop ... étrange. – Tomalak

+1

@Tomalak Parce que ces utilisateurs low rep doivent obtenir leurs représentants de * quelque part * :) –

+15

Comment '((15/30) * 100)/100' retourner' 28.45'? –

Répondre

48

Vous vous rendez compte que ce mot pour cent tout se traduit littéralement en « pour cent » ou « par 100 » depuis cent est la racine latine qui est utilisé partout qui signifie « 100 » ou « un centième ».

  • siècle (100 ans)
  • US Cent (100 d'un dollar)
  • Centurion (Ceux qui commandait 100 soldats)
  • Centipede (créature avec 100 pieds)

Alors 50% devient 50 pour cent devient 50 pour 100

Et, puisque en termes mathématiques, le mot par signifie diviser (miles par heure == == mph m/h), alors nous pouvons distiller 50% jusqu'à:

50/100

qui, de façon assez surprenante, est représentée comme le nombre décimal 0,5

5

Il suffit de multiplier par 100.

+0

J'aime cette réponse ... c'est si simple et direct: p – Samuel

11

15/30 = 0,5

si vous voulez avoir le numéro de pour cent, vous devez multiplier par 100.

+0

Oh, je vois mon erreur! – nn2

7

Je suis un utilisateur faible représentant donc Voici. Traiter le signe% comme une constante égale à 0,01. Ainsi, lorsque vous travaillez avec un nombre comme 50%, traitez-le comme 50 * 0.01 ou 0.5.

0.5 = n %     // I want to know what 0.5 is as a percent 
0.5/% = n * %/%  // Divide both sides by the constant 
0.5/% = n    // Remove the excess 
0.5/0.01 = n    // Replace the constant 
50 = n      // You have your answer