2009-12-23 8 views
0

Essayant de multiplier 2 valeurs. La quantité est un nombre entier et le prix du crédit est un nombre décimal. Quand je lance ce code, rien ne se passe.calcul simple de nombre entier et décimal dans jquery

Est-ce que quelqu'un sait quel est le problème?

Merci.

$(function(){ // bind the recalc function to the quantity fields 

    $("#oneCreditSum").after('<label></label>Total: Aud <span id=\"total\"></span><br><br>'); 

    $("#quantity").bind('keyup', recalc); 

    function recalc(){ 
     var quantity = $('#quantity').val(); 
     var creditPrice = $('#creditPrice').val(); 
     var total = quantity * creditPrice; 
     $("#total").text(total); 
    }}); 
+0

Y at-il une erreur javascript que vous obtenez? – Vinz

+0

Pouvez-vous ajouter le code HTML? #quantity - une zone de texte? donC#creditPrice? –

Répondre

3

Utilisez parseFloat sur les valeurs, et alerter individuellement chacun à tester.

Quelques autres (sans lien) améliorations:

  1. Utilisez la fonction keyup():

    $("#quantity").keyup(recalc); 
    
  2. Marque fonction anonyme:

    $("#quantity").keyup(function(){...}); 
    
  3. Utiliser $ (this) sur #quantity dans la fonction pour éviter d'appeler à nouveau le sélecteur jQuery

Vous pouvez aussi envisager de condenser cela en une seule ligne de code:

var num = 10; 
var result = num.toFixed(2); // result will equal 10.00 

Je suis cet extrait:

$("#total").text(parseFloat($('#quantity').val()) * parseFloat($('#creditPrice').val())); 

à zéro-pad, vous pouvez essayer quelque chose toFixed() à partir du site suivant

http://www.mredkj.com/javascript/numberFormat.html

Espérons que cela aide.

+0

merci, cela a été très utile. encore une sous-question: existe-t-il un moyen de limiter le point décimal pour montrer par exemple. 10.20? – ondrobaco

+0

Édité ma réponse avec ceci. Souhaitez-vous envisager d'accepter cela comme votre réponse –

+0

sûr que je le ferai, merci pour votre aide. – ondrobaco

4

utilisation

parseFloat

avant le calcul des deux nombres qui analyse un argument de chaîne et renvoie un nombre à virgule flottante.

var quantity = $('#quantity').val(); 
var creditPrice = $('#creditPrice').val(); 
var total = parseFloat(quantity) * parseFloat(creditPrice); 
0

Si vous êtes intéressé par nombre entier que vous pouvez utiliser cette fonction à la place:

parseInt

+0

Ne pas oublier la radix (, 10) –

+0

convenu, c'est que j'ai posté un lien pour plus de détails – Sarfraz

Questions connexes