Калькулятор процентов, выводящий только целое число

#javascript #html #jquery

#javascript #HTML #jquery

Вопрос:

У меня есть работающий калькулятор процентов (как показано ниже). 1-й ввод предназначен для начального числа, 2-й ввод предназначен для процента, а 3-й выводит ответ.

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

  <input type="number" class="input" id="without-visitors">
 <input type="number" class="input" id="without-conversion">
 <input type="number" class="input" id="without-formfillenquiries" readonly>



<script>
        $('#without-visitors, #without-conversion').change(function() {
          var withoutvisitors = parseFloat($('#without-visitors').val())
          var withoutconversion = parseFloat($('#without-conversion').val())
          var withoutformfillenquiries = parseFloat($('#without-formfillenquiries').val())
    
          $('#without-formfillenquiries').val(withoutvisitors * withoutconversion / 100);
    
    
          });
      </script>
  

Комментарии:

1. Я опробовал ваш код в jsfiddle, кажется, он работает — он помещает только целое число в третий ввод. jsfiddle.net/#amp;togetherjs=bP5r0weMNu

2. Можете ли вы использовать фрагмент стека в своем примере, чтобы мы тоже могли его запустить?

3. Если я добавлю числа 111 и 11 к первым 2 полям, он выведет 12.21, мне нужно, чтобы это было целое число, поскольку оно представляет людей.

4. Моя ошибка. Изменение конечного бита на .val(Math.round(withoutvisitors * withoutconversion / 100)) округление до ближайшего целого числа.

5. Потрясающая вещь, Tzvi2, спасибо за вашу помощь! Это решило проблему 🙂

Ответ №1:

Я добавил функцию Math.round() в последнюю строку — $(‘#without-formfillenquiries’).val(withoutvisitors * withoutconversion / 100); чтобы округлить результат до ближайшего целого целого.

 $('#without-visitors, #without-conversion').change(function() {
          var withoutvisitors = parseFloat($('#without-visitors').val())
          var withoutconversion = parseFloat($('#without-conversion').val())
          var withoutformfillenquiries = parseFloat($('#without-formfillenquiries').val())
    
          $('#without-formfillenquiries').val(Math.round(withoutvisitors * withoutconversion / 100));
    
    
          });  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" class="input" id="without-visitors">
 <input type="number" class="input" id="without-conversion">
 <input type="number" class="input" id="without-formfillenquiries" readonly>  

Комментарии:

1. Я знаю, что это уже упоминалось в комментариях выше, но можете ли вы добавить, что вы сделали, чтобы решить проблему?

2. @evolutionxbox это в этом коде ответов. Я добавил Math.round() функцию в последнюю строку $('#without-formfillenquiries').val(withoutvisitors * withoutconversion / 100); , чтобы округлить результат до ближайшего целого целого.