Управление десятичным выводом в JavaScript

1

Где бы я добавил метод toFixed в этом коде, который вычисляет сумму, чтобы я мог управлять десятичной toFixed до 18 мест, и поэтому я не получаю неправильные вычисления.

Сейчас 100 000 должны вернуть 51, но он возвращает 51.00000000000004

< script type = "text/javascript" >
  $(document).ready(function() {
    var qty = $("#qty");
    qty.keyup(function() {
      var total = isNaN(parseInt(qty.val() * $("#price").val())) ? 0 : (qty.val() * $("#price").val())
      $("#total").val(total);
    });
  }); 
</script>
Теги:
floating-point
calculator
decimal
precision

1 ответ

1
Лучший ответ

Один из вариантов находится здесь, прежде чем устанавливать значение:

$("#total").val(total.toFixed(2));

Другой вариант здесь, после математики:

(qty.val() * $("#price").val()).toFixed(2)
  • 0
    Спасибо за это, мне нужно 18 мест, поэтому я изменил на 18, но точные значения все еще отличаются. Теперь 100 000 возвращается 51,000000000000007105, есть ли способ сохранить 18 мест, но убедиться, что возвращены точные числа?
  • 0
    @DavidClabaugh Вы сталкиваетесь с тем, что числа с плавающей запятой являются приблизительными, а числа JavaScript недостаточно точны для такого количества десятичных разрядов. Смотрите: математика с плавающей запятой не работает?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню