2016-07-08 27 views
0

Console modulo resultWas ist los mit diesem Modulo?

Wenn ich eine Übung auf freien Code Camp zu tun, finde ich diesen Fehler aus - das Ergebnis 96.74%2016.739999999999995 war, nicht 16.74. Was ist daran falsch und wie kann ich diesen Fehler beheben?

console.log(96.74%20); // 16.739999999999995

+0

Sie verwenden können: 'console.log ((96.74% 20) .toFixed (2));' – MHS

+1

Dies ist der Effekt eines Gleitkomma-Rundungsfehlers. Lesen Sie dies: https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –

+0

Jedes Objekt Nummer in Javascript hat eine Methode namens "toFixed", die die gleiche Zahl auf die N-Dezimalstelle gerundet zurückgibt Runde: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed. In deinem Fall reicht es einfach, .toFixed (2) zu verwenden. In jedem Fall steht ein solcher Fehler im Zusammenhang mit ** Gleitkomma-Rundungsfehlern **. Sie können einige in Google nachsehen, wenn Sie wissen möchten, worum es sich handelt und warum dies der Fall ist. – briosheje

Antwort

0

Versuchen Sie folgendes:

console.log((96.74%20).toFixed(2)); // 16.739999999999995