2013-04-07 4 views
0

Je vais avoir quelques problèmes de conversion d'une chaîne à un certain nombre de calculs numériques en javascript/KOchaîne de conversion flotter/nombre d'opérations numériques en javascript

Je suit pour calculer le coût total d'un ordre une forme de knock-out

self.totalCost = ko.computed(function() { 
    var total = 0; 
    for (var i = 0; i < self.itemNumbers().length; i++) 
     //somehow convert the price to a number here so then I can add it 
     total += self.itemNumbers()[i].item.price; 
    return total; 
}); 

l'affichage ne montre rien, cependant, quand je change de « rendement total » à « retourner » i le nombre total affiche alors. Je suppose que les prix sont des chaînes et ne peuvent pas être ajoutés. Lorsque je publie les prix dans un tableau, ils apparaissent sous la forme d'un nombre décimal (par exemple, 19,99), mais je ne suis pas sûr qu'ils soient réellement des nombres ou des chaînes.

modifier ci-dessous

I utilisé parseFloat pour convertir les valeurs. Maintenant, dans la table qui sort le résultat j'ai utilisé typeof() et il montre le nombre. Le résultat ne se calcule toujours pas correctement.

Y at-il autre chose que je peux faire pour vérifier les valeurs pour lesquelles ils ne font pas de sommation? Puis-je vérifier chaque valeur individuelle ajoutée?

Répondre

2

Peut-être .. total + = Nombre (self.itemNumbers() [i] .item.price);

+0

Non, ne s'affiche pas. Est-ce que ce que j'ai dit sur le retour, j'ai du sens? Cela voudrait-il dire que le prix n'est pas un chiffre? – user1406951

+0

Vous devriez être en mesure de point d'arrêt dans la console javascript et vérifiez-le. Difficile à dire sans en savoir plus sur itemNumbers. – Fergus

+0

J'ai mis à jour mon message ci-dessus. Y at-il de toute façon pour afficher le type pour le prix? Cela montrerait-il si ce sont des cordes ou des chiffres? – user1406951

Questions connexes