2017-02-14 6 views
-1

Ich bin gestern auf ein Problem gestoßen, dass, als ich Javascript/jQuery verwendete, um bestimmte Zahlen mit 100 zu multiplizieren, eine seltsame Zahl zurückgegeben wurde..toFixed() keine Rundungsnummer korrekt

I.E 16.74 * 100 = 1673,9999999999998

Nach der Suche Ich habe festgestellt, dass dieser mit einem Fließkommawert zu tun ist, und dass mit dem .toFixed dem Befehl sollte das Problem lösen.

Dies ist mein Code, der nicht

<input type="text" name="f_prodcost" id="f_prodcost" /> 
<input type="text" name="h_prodcost" id="h_prodcost" disabled="disabled" /> 
<script> 
$('#f_prodcost').change(function() { 
    $('#h_prodcost').val($(this).val()*100).toFixed(); 
}); 
</script> 

ich auf Stackoverflow Fragen gelesen haben zu arbeiten scheint, aber ich habe nicht in der Lage gewesen, um das Problem verkauft, und ich schätze dies wahrscheinlich wirklich einfach zu jemand, der ein klares Verständnis von javascript/jquery hat, aber ich lerne gerade und würde mich über Hinweise freuen.

+0

Nummer ($ ('# h_prodcost'). Val ($ (this) .val() * 100)). ToFixed(); –

+2

[Works für mich] (https://i.imgur.com/YVbQEI8.png). Wie genau funktioniert es nicht für dich? Es zeigt eine Fehlermeldung in der Konsole an? Es druckt einen falschen Wert? Es setzt den Computer in Brand? –

Antwort

3

Sieht aus wie Ihre Klammern gesetzt sind falsch, so etwas wie dieses versuchen ...

$('#h_prodcost').val(($(this).val()*100).toFixed()); 

Sie müssen toFixed() anrufen, bevor er in .val().

-3

müssen Sie Parameter .toFixed Funktion übergeben

$('#h_prodcost').val($(this).val()*100).toFixed(2) 

dies wird Ihnen bis zu 2 Stellen nach dem Punkt

auf diesen Wert zurück 1673.9999999999998 es 1673.99

zurückkehren Sie toFixed() Funktion übergeben können irgendeine Zahl 1,2,3 usw.

+0

Ziffern sind optional. Wenn kein Wert übergeben wird, wird 0 als Standard verwendet https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed –

+0

Ihre 'toFixed' ist immer noch die falsche Seite der Parens. Welches ist der eigentliche Fehler im OP? – Jamiec

0

Sie haben ein Klammerproblem. Sie haben toFixed Methode aufrufen, bevor Sie den Eingabewert

$('#f_prodcost').change(function() { 
 
    $('#h_prodcost').val(($(this).val()*100).toFixed()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="f_prodcost" id="f_prodcost" /> 
 
<input type="text" name="h_prodcost" id="h_prodcost" disabled="disabled" />

+0

warum downvoted? –

Verwandte Themen