it-swarm.com.ru

JavaScript, отображающий число с плавающей точкой до 2 десятичных знаков

Я хотел отобразить число до 2 десятичных знаков.

Я думал, что мог бы использовать toPrecision(2) в JavaScript.

Однако, если число 0.05, я получаю 0.0500. Я бы предпочел, чтобы это осталось прежним.

Смотрите это на JSbin .

Каков наилучший способ сделать это?

Я могу подумать о кодировании нескольких решений, но я представляю (надеюсь) что-то вроде этого встроенное?

238
alex
float_num.toFixed(2);

Примечание:toFixed() будет округлять или дополнять нулями, если необходимо, чтобы соответствовать указанной длине.

434
Jason McCreary

Вы можете сделать это с помощью функции toFixed, но она глючит в IE . Если вы хотите надежного решения, посмотрите на мой ответ здесь .

47
Elias Zamaria

Попробуйте toFixed вместо toPrecision.

16
casablanca

Не знаю, как я добрался до этого вопроса, но даже если прошло много лет с тех пор, как я его задал, я хотел бы добавить быстрый и простой метод, которому я следую, и он никогда не подводил меня:

var num = response_from_a_function_or_something();

var fixedNum = parseFloat(num).toFixed( 2 );
7
panos

function round(value, decimals) { return Number(Math.round(value+'e'+decimals)+'e-'+decimals); }

раунд (1,005, 2); // вернуть 1.01

раунд (1,004, 2); // вернуть 1 вместо 1,00

Ответ по этой ссылке: http://www.jacklmoore.com/notes/rounding-in-javascript/

2
Huy Nguyen

number.parseFloat(2) работает, но возвращает строку.

Если вы хотите сохранить его как тип номера, вы можете использовать:

Math.round(number * 100) / 100

2
rnmalone

Метод toFixed() форматирует число с использованием записи с фиксированной запятой.

а вот и синтаксис

numObj.toFixed([digits])

Аргумент digits является необязательным и по умолчанию равен 0. И тип возвращаемого значения - строка, а не число. Но вы можете преобразовать его в число, используя 

numObj.toFixed([digits]) * 1

Он также может генерировать исключения, такие как TypeError, RangeError

Вот полная информация и совместимость в браузере.

0
Sunil Garg

toFixed функция используется для ограничения числа с плавающей запятой до 2 десятичных знаков в JavaScript

two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)
0
Asad Manzoor

Я сделал эту функцию. Работает нормально, но возвращает строку.

function show_float_val(val,upto = 2){
  var val = parseFloat(val);
  return val.toFixed(upto);
}
0
Syed Nurul Islam