2017-10-17 8 views
0

J'utilise JavaScript pour afficher un total de $ à cocher les cases. Il semble que la valeur 3.5 soit prise en charge et s'affichera en tant que tel. Cependant, 4.0 revient juste comme 4. Je voudrais qu'il montre les décimales, comme un montant en dollars.Afficher le total de la commande avec les décimales JavaScript

J'utilise le code suivant:

<input value="4.0" type="checkbox" class="sum" data-toggle="checkbox" name="item1"> 
<input value="3.5" type="checkbox" class="sum" data-toggle="checkbox" name="item2"> 
var inputs = document.getElementsByClassName('sum'), 
      total = document.getElementById('order-total'); 

     for (var i=0; i < inputs.length; i++) { 
      inputs[i].onchange = function() { 
       var add = this.value * (this.checked ? 1 : -1); 
       total.innerHTML = parseFloat(total.innerHTML) + add 
       total1.innerHTML = parseFloat(total1.innerHTML) + add 
      } 
     } 

Et c'est là, il affiche:

<div class="total-box" style="color: #ffffff;">Total: $<span id="order-total">0</span></div> 

Il fonctionne sur le plan technique ... Si une personne commande un article $ 4, simplement affiche 4 $. Si une personne ajoute un article de 3,50 $, elle affiche 7,50 $. MAIS, si quelqu'un ne commande que l'article de 3,50 $, il affiche 3,5 $. Si je change le code ci-dessous:

<div class="total-box" style="color: #ffffff;">Total: $<span id="order-total">0</span>0</div> 

$ 3.50 fonctionne parfaitement. Cependant, l'article de 4 $ affiche 40 $.

+2

double possible de [Mise en forme d'un nombre avec exactement deux décimales JavaScript] (https://stackoverflow.com/questions/1726630/formatting-a-number-with-exactly- two-decimals-in-javascript) – DocMax

+2

Copie possible de [Comment est-ce que je peux formater des nombres comme chaîne de devise dollar en JavaScript?] (https://stackoverflow.com/questions/149055/how-can-i-format-numbers-as -dollars-currency-string-in-javascript) – corsiKa

Répondre

0

Vous pouvez utiliser Number.toFixed()

+0

J'ai regardé l'information .toFixed(), et il semble que je déclare les nombres comme variables? Par exemple var num = 5,56789; var n = num.toFixe (2); Je ne déclare aucun nombre comme variable, car ils sont tous ajoutés directement dans les entrées. J'ai essayé d'ajouter le .toFixed dans le code où je pense qu'il devrait, mais alors rien ne fonctionne. –