Круглое значение до 2 десятичных знаков javascript - программирование

Круглое значение до 2 десятичных знаков javascript

У меня есть небольшая проблема с окончательным значением, мне нужно округлить до 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);

4b9b3361

Ответ 1

Просто умножьте число на 100, округлите и разделите полученный результат на 100.

Ответ 2

Если вы хотите, чтобы он визуально отформатировался на два десятичных знака в виде строки (для вывода), используйте 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() также намного легче напечатать.;)