Ответ 1
float_num.toFixed(2);
Примечание: toFixed()
округляет или заполняет нулями, если необходимо, для достижения указанной длины.
Я хотел отобразить число до двух знаков после запятой.
Я думал, что могу использовать toPrecision(2)
в JavaScript.
Однако, если число 0.05
, я получаю 0.0500
. Я бы предпочел, чтобы он остался прежним.
Посмотрите на JSbin.
Каков наилучший способ сделать это?
Я могу думать о кодировании нескольких решений, но я бы предположил (я надеюсь) что-то вроде этого встроено?
float_num.toFixed(2);
Примечание: toFixed()
округляет или заполняет нулями, если необходимо, для достижения указанной длины.
Вы можете сделать это с toFixed
функции toFixed
, но в IE она toFixed
. Если вы хотите надежное решение, посмотрите на мой ответ здесь.
Попробуйте toFixed
вместо toPrecision
.
Не знаю, как я дошел до этого вопроса, но даже если прошло много лет с тех пор, как я его задал, я хотел бы добавить быстрый и простой метод, которому я следую, и он никогда не подводил меня:
var num = response_from_a_function_or_something();
var fixedNum = parseFloat(num).toFixed( 2 );
function round(value, decimals) {
return Number(Math.round(value+'e'+decimals)+'e-'+decimals);
}
round(1.005, 2);//return 1.01
round(1.004, 2);//return 1 instead of 1.00
Ответ по этой ссылке: http://www.jacklmoore.com/notes/rounding-in-javascript/
number.parseFloat(2)
работает, но возвращает строку.
Если вы хотите сохранить его как числовой тип, вы можете использовать:
Math.round(number * 100) / 100
Метод
toFixed()
форматирует число с использованием записи с фиксированной запятой.
а вот и синтаксис
numObj.toFixed([digits])
Аргумент digits является необязательным и по умолчанию равен 0. И тип возвращаемого значения - строка, а не число. Но вы можете преобразовать его в число, используя
numObj.toFixed([digits]) * 1
Он также может кидает исключения, как TypeError
, RangeError
Вот полная детализация и совместимость в браузере.
Вы можете попробовать смешать Number()
и toFixed()
.
Преобразуйте целевое число в красивую строку с цифрами X, а затем преобразуйте форматированную строку в число.
Number( (myVar).toFixed(2) )
Смотрите пример ниже:
var myNumber = 5.01;
var multiplier = 5;
$('#actionButton').on('click', function() {
$('#message').text( myNumber * multiplier );
});
$('#actionButton2').on('click', function() {
$('#message').text( Number( (myNumber * multiplier).toFixed(2) ) );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<button id="actionButton">Weird numbers</button>
<button id="actionButton2">Nice numbers</button>
<div id="message"></div>
Я сделал эту функцию. Работает нормально, но возвращает строку.
function show_float_val(val,upto = 2){
var val = parseFloat(val);
return val.toFixed(upto);
}
Функция toFixed используется для ограничения чисел с плавающей точкой до 2 десятичных знаков в JavaScript
two_decimal_num = parseFloat(3.14159.toFixed(2));
console.log(two_decimal_num)