JavaScript отображение float до 2 десятичных знаков

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

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

однако, если число 0.05, Я 0.0500. Я бы предпочла остаться той же.

см. На JSbin.

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

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

7 ответов


float_num.toFixed(2);

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


вы можете сделать это с помощью тега , но это багги в IE. Если вы хотите надежное решение, посмотрите на мой ответ здесь.


попробовать toFixed вместо toPrecision.


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

var num = responce_from_a_function_or_something();
var fixed_num = parseFloat(num).toFixed( 2 );

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

круглая(1.005, 2); // возврат 1.01

round (1.004, 2); // return 1 вместо 1.00

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


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

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

numObj.toFixed([digits])

цифры аргумент необязателен и по умолчанию равен 0. И возвращаемый тип-string not number. Но вы можете преобразовать его в число, используя

numObj.toFixed([digits]) * 1

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

здесь подробно и совместимость в браузере.


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

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