JavaScript отображение float до 2 десятичных знаков
Я хотел отобразить число до 2 десятичных знаков.
Я думал, что смогу использовать toPrecision(2)
в JavaScript .
однако, если число 0.05
, Я 0.0500
. Я бы предпочла остаться той же.
см. На JSbin.
каков наилучший способ сделать это?
Я могу придумать кодирование нескольких решений, но я бы предположил (надеюсь), что что-то вроде этого встроено?
7 ответов
float_num.toFixed(2);
Примечание:toFixed()
будет круглый или площадку с нулями, если это необходимо для удовлетворения указанной длины.
вы можете сделать это с помощью тега , но это багги в IE. Если вы хотите надежное решение, посмотрите на мой ответ здесь.
Не знаю, как я добрался до этого вопроса, но даже если это много лет назад, я хотел бы добавить быстрый и простой метод, которому я следую, и никогда не подводил меня:
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);
}