Я сделал калькулятор с JavaScript для автоматического расчета результата. Это работа, но я не могу удалить десятичную.

Вот мой код:

$(document).ready(function() {
  $(".input").keyup(function() {
    var val1 = +$(".value1").val();
    var val2 = +$(".value2").val();
    var val3 = +$(".value3").val();
    var val4 = +$(".value4").val();
    var val5 = (".result");
    var decval5 = (val5);
    $(decval5).val(((((val1 / 8) + val2) / 16) + val3) * val4);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<div style="border: 1px solid #D3D3D3;background:#fff;">
  <div style="padding:10px 0px 10px 10px;">
    <div style="font-size:20px;"></div>
    <br>
    <center>
      input1
      <input type="text" class="input value3">input2
      <input type="text" class="input value2"> input3
      <input type="text" class="input value1"> input4
      <input type="text" class="input value4"> &nbsp;=&nbsp; result
      <input type="text" disabled="disabled" class="result">
    </center>
  </div>
  <br>
</div>
-1
Myat Zuckerberg 12 Дек 2016 в 21:30

3 ответа

Лучший ответ

Вы можете использовать Math.round():

$(document).ready(function() {
  $(".input").keyup(function() {
    var val1 = +$(".value1").val();
    var val2 = +$(".value2").val();
    var val3 = +$(".value3").val();
    var val4 = +$(".value4").val();
    var val5 = (".result");
    var decval5 = (val5);
    $(decval5).val(Math.round(((((val1 / 8) + val2) / 16) + val3) * val4));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="border: 1px solid #D3D3D3;background:#fff;">
  <div style="padding:10px 0px 10px 10px;">
    <div style="font-size:20px;"></div>
    <br>
    <center>
      input1
      <input type="text" class="input value3">input2
      <input type="text" class="input value2"> input3
      <input type="text" class="input value1"> input4
      <input type="text" class="input value4"> &nbsp;=&nbsp; result
      <input type="text" disabled="disabled" class="result">
    </center>
  </div>
  <br>
</div>
3
Ionut Necula 12 Дек 2016 в 18:33

Вы можете округлить ответ вверх или вниз или просто обрезать его:

$(document).ready(function() {
  $(".input").keyup(function() {
    var val1 = +$(".value1").val();
    var val2 = +$(".value2").val();
    var val3 = +$(".value3").val();
    var val4 = +$(".value4").val();
    var val5 = (".result");
    var decval5 = (val5);
    $(decval5).val(((((val1 / 8) + val2) / 16) + val3) * val4);
    
   // Round Up:
   console.log(Math.ceil(parseFloat($(decval5).val())));
    
   // Round Down:
   console.log(Math.floor(parseFloat($(decval5).val())));    
    
   // Truncate:
   console.log(parseFloat($(decval5).val()).toFixed(0));  
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<div style="border: 1px solid #D3D3D3;background:#fff;">
  <div style="padding:10px 0px 10px 10px;">
    <div style="font-size:20px;"></div>
    <br>
    <center>
      input1
      <input type="text" class="input value3">input2
      <input type="text" class="input value2"> input3
      <input type="text" class="input value1"> input4
      <input type="text" class="input value4"> &nbsp;=&nbsp; result
      <input type="text" disabled="disabled" class="result">
    </center>
  </div>
  <br>
</div>
0
Scott Marcus 12 Дек 2016 в 18:39

Пытаться,

$(decval5).val(Math.round(((((val1 / 8) + val2) / 16) + val3) * val4));
0
Azad 12 Дек 2016 в 18:34