В php у нас есть number_format()
. Передав ему значение, например:
number_format(3.00 * 0.175, 2);
возвращает 0,53 , что я и ожидал.
Однако в JavaScript используется toFixed()
var num = 3.00 * 0.175;
num.toFixed(2);
возвращает 0,52 .
Хорошо, так что, возможно, toFixed
не то, что я хочу ... Может быть, что-то вроде этого ...
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);
Нет, это тоже не работает. Он вернется 0,56.
Как я могу получить number_format
функцию в JavaScript, которая не дает неправильный ответ?
На самом деле я нашел реализацию number_format для js, http://phpjs.org/functions/number_format,, но она страдает от той же проблемы.
Что здесь происходит с округлением JavaScript? Чего мне не хватает?