Показать значение с 2 десятичными знаками в вычислениях Javascript

Следующая форма автоматически вычисляет Ans3% с использованием JavaScript. Есть ли способ отобразить только первые два десятичных знака после расчета в поле Ans3%. Благодаря моим исследованиям я обнаружил, что это достижимо с помощью метода toFixed, но я не могу понять, что именно я должен делать.

Просто заполните любыми номерами все поля до возраста, чтобы показать, что он работает. Заранее спасибо!

<html>

<head>

</head>

<body>

<style>
#ans, #ans2 {
display:none;
}
</style>

<div id="bodyfatmonitoring">
<form name="fatmonitor" Method="post" id="fatmonitor" enctype="multipart/form-data">

<h2 style="color:#b3b3cc;">Calculator</h2>

<table>

<tr>
<th> </th>
<th> </th>
</tr>

<tr>
<td>
  <label for="first">First: *</label>
  <input type="text" name="first" size="35" id="first" required autocomplete="off">
</td>

<td>
  <label for="fifth">Fifth: *</label>
  <input type="text" name="fifth" size="35" id="fifth" autocomplete="off">
</td>
</tr>

<tr>
<td>
  <label for="second">Second: *</label>
  <input type="text" name="second" size="35" id="second" autocomplete="off">
</td>
  
<td>
  <label for="sixth">Sixth: *</label>
  <input type="text" name="sixth" size="35" id="sixth" autocomplete="off">
</td>
</tr>

<tr>
<td>
  <label for="third">third: *</label>
  <input type="text" name="third" size="35" id="third" autocomplete="off">
</td>

<td>
  <label for="seventh">Seventh: *</label>
  <input type="text" name="seventh" size="35" id="seventh" autocomplete="off">
</td>
</tr>

<tr>
<td>
  <label for="fourth">Fourth: *</label>
  <input type="text" name="fourth" size="35" id="fourth" autocomplete="off">
</td>

<td>
  <label for="age">Age: *</label>
  <input type="text" name="age" size="35" id="age" autocomplete="off">
</td>
</tr>

  <input type="text" name="ans" size="35" id="ans"/>
  <input type="text" name="ans2" size="35" id="ans2"/>

<tr>
<td>
  <label for="firstname2">Name | Lastname: *</label>
  <input type="text" name="firstname2" size="35" id="firstname2" autocomplete="off"/>
</td>

<td>
  <label for="mandate">Date: *</label>
  <input type="date" name="mandate" size="35" id="mandate" autocomplete="off"/>
</td>
</tr>

<tr>

<td>
  <label for="ans3">Ans3 %: *</label>
  <input type="text" name="ans3" size="35" id="ans3" autocomplete="off"/>
</td>

<td>
  <label for="category">Category of Ans3: *</label>
  <input type="text" name="category" size="35" id="category" autocomplete="off"/>
</td>
</tr>

<tr>
<td>
<button type="button" id="calculator" name="calculator" onclick="Calculate(); Calculate2();">Υπολογισμός</button>
</td>

</tr>

</table>

</form>
</div>


</body>

</html>

<script>
function Calculate() {
  var first = document.getElementById('first').value;
  var second = document.getElementById('second').value;
  var third = document.getElementById('third').value;
  var fourth = document.getElementById('fourth').value;
  var fifth = document.getElementById('fifth').value;
  var sixth = document.getElementById('sixth').value;
  var seventh = document.getElementById('seventh').value;
  var ans = document.getElementById('ans').value;
  var ans2 = document.getElementById('ans2').value;

  document.getElementById('ans').value = parseInt(first) + parseInt(second) + parseInt(third) + parseInt(fourth) + parseInt(fifth) + parseInt(sixth) + parseInt(seventh);
  document.getElementById('ans2').value = 1.112 - 0.00043499 * parseInt(document.getElementById('ans').value) + 0.00000055 * Math.pow(parseInt(document.getElementById('ans').value), 2) - 0.00028826 * parseInt(document.getElementById('age').value);
  document.getElementById('ans3').value = ((4.95 / document.getElementById('ans2').value) - 4.5) * 100;

}
</script>

<script>
function Calculate2() {

//Υπολογισμός Κατηγορίας - Ταξινόμηση
  var age = document.getElementById('age').value;
  var ans3 = document.getElementById('ans3').value;
  //Υπολογισμός Κατηγορίας - Ταξινόμηση
  
  //Υπολογισμός Κατηγορίας - Ταξινόμηση
  
if ( (age <= 39 && age >= 18 && ans3 <= 8 && ans3 >= 0) ){
document.getElementById('category').value = 'Μειωμένο Λίπος';
}

else if ( (age <= 39 && age >= 18 && ans3 <= 20 && ans3 >= 8.00000001) ){
document.getElementById('category').value = 'Φυσιολογικό Λίπος';
}

else if ( (age <= 39 && age >= 18 && ans3 <= 25 && ans3 >= 20.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Υπέρβαρος)';
}

else if ( (age <= 39 && age >= 18 && ans3 >= 25.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Παχύσαρκος)';
}

else if ( (age <= 59 && age >= 40 && ans3 <= 11 && ans3 >= 0) ){
document.getElementById('category').value = 'Μειωμένο Λίπος';
}

else if ( (age <= 59 && age >= 40 && ans3 <= 22 && ans3 >= 11.00000001) ){
document.getElementById('category').value = 'Φυσιολογικό Λίπος';
}

else if ( (age <= 59 && age >= 40 && ans3 <= 28 && ans3 >= 22.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Υπέρβαρος)';
}

else if ( (age <= 59 && age >= 40 && ans3 >= 28.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Παχύσαρκος)';
}

else if ( (age <= 125 && age >= 60 && ans3 <= 13 && ans3 >= 0) ){
document.getElementById('category').value = 'Μειωμένο Λίπος';
}

else if ( (age <= 125 && age >= 60 && ans3 <= 25 && ans3 >= 13.00000001) ){
document.getElementById('category').value = 'Φυσιολογικό Λίπος';
}

else if ( (age <= 125 && age >= 60 && ans3 <= 30 && ans3 >= 25.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Υπέρβαρος)';
}

else if ( (age <= 125 && age >= 60 && ans3 >= 30.00000001) ){
document.getElementById('category').value = 'Υπερβάλλον Λίπος (Παχύσαρκος)';
}

else if ( (age <= 17) ){
document.getElementById('category').value = 'Λάθος Ηλικία';
}

else {
document.getElementById('category').value = 'Υπολογίστε το Σωμ. Λίπος';
}
  //Υπολογισμός Κατηγορίας - Ταξινόμηση

}
</script>

`

1 ответ

Решение

Вы устанавливаете значение ans3 через document.getElementById('ans3').value = ((4.95 / document.getElementById('ans2').value) - 4.5) * 100;, Это значение возвращает число. toFixed - это метод чисел, поэтому вызывайте его по этому номеру.

document.getElementById('ans3').value = (((4.95 / document.getElementById('ans2').value) - 4.5) * 100).toFixed(2);

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

var ans3 = ((4.95 / document.getElementById('ans2').value) - 4.5) * 100;
document.getElementById('ans3').value = ans3.toFixed(2);
Другие вопросы по тегам