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

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

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

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

Посмотрите на JSbin.

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

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

Ответ 1

float_num.toFixed(2);

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

var num = response_from_a_function_or_something();

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

Ответ 5

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/

Ответ 6

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

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

Math.round(number * 100) / 100

Ответ 7

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

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

numObj.toFixed([digits])

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

numObj.toFixed([digits]) * 1

Он также может кидает исключения, как TypeError, RangeError

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

Ответ 8

Вы можете попробовать смешать 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>

Ответ 9

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

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

Ответ 10

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

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