在Javascript计算中显示2个小数的值

时间:2017-12-02 16:47:02

标签: javascript tofixed

以下表单使用javascript自动计算Ans3%。有没有办法在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>
&#13;
&#13;
&#13;

`

1 个答案:

答案 0 :(得分:2)

您正在通过document.getElementById('ans3').value = ((4.95 / document.getElementById('ans2').value) - 4.5) * 100;设置ans3的值。该值返回一个数字。 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);