Ответ 1
Просто умножьте число на 100, округлите и разделите полученный результат на 100.
У меня есть небольшая проблема с окончательным значением, мне нужно округлить до 2 десятичных знаков.
var pri='#price'+$(this).attr('id').substr(len-2);
$.get("sale/price?output=json", { code: v },
function(data){
$(pri).val(Math.round((data / 1.19),2));
});
});
Любая помощь приветствуется.
Решение: $(pri).val(Math.round((data / 1.19 * 100 )) / 100);
Просто умножьте число на 100, округлите и разделите полученный результат на 100.
Если вы хотите, чтобы он визуально отформатировался на два десятичных знака в виде строки (для вывода), используйте toFixed()
:
var priceString = someValue.toFixed(2);
Ответ @David имеет две проблемы:
Он оставляет результат как число с плавающей запятой и, следовательно, имеет возможность отображать конкретный результат со многими десятичными знаками, например. 134.1999999999
вместо "134.20"
.
Если ваше значение является целым числом или округляется до одной десятой, вы не увидите дополнительного десятичного значения:
var n = 1.099;
(Math.round( n * 100 )/100 ).toString() //-> "1.1"
n.toFixed(2) //-> "1.10"
var n = 3;
(Math.round( n * 100 )/100 ).toString() //-> "3"
n.toFixed(2) //-> "3.00"
И, как вы можете видеть выше, использование toFixed()
также намного легче напечатать.;)