In php, abbiamo number_format()
. Passando un valore come ad esempio:javascript arrotondare correttamente fino a due decimali, impossibile?
number_format(3.00 * 0.175, 2);
rendimenti 0.53, che è quello che mi aspetterei.
Tuttavia, in JavaScript utilizzando toFixed()
var num = 3.00 * 0.175;
num.toFixed(2);
rendimenti 0,52.
Ok, quindi forse toFixed
non è quello che voglio ... Forse qualcosa di simile ...
var num = 3.17 * 0.175;
var dec = 2;
Math.round(Math.round(num * Math.pow(10, dec + 1))/Math.pow(10, 1))/Math.pow(10,dec);
No, che non funziona neanche. Restituirà 0,56.
Come posso ottenere una funzione number_format
in JavaScript che non fornisce una risposta errata?
In realtà ho trovato un'implementazione di number_format per js, http://phpjs.org/functions/number_format, ma soffre dello stesso problema.
Cosa sta succedendo qui con l'arrotondamento di JavaScript? Cosa mi manca?
In PHP, si sta facendo 3.00 * 0.175, nel proprio JavaScript 3.17 * 0.175 .. –
Lauri: 3,17 * 0,175 deve restituire 0,55, non 0,56, che è il problema. – Gabe
Benvenuti in Stack Overflow, ottima prima domanda. –