javascript - 在 Javascript 计算中显示 2 位小数的值

标签 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>

`

最佳答案

您正在通过 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);

关于javascript - 在 Javascript 计算中显示 2 位小数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47610176/

相关文章:

javascript - 在javascript中动态创建嵌套数组

javascript - 如何拆分包含数字的驼峰式字符串

javascript - 使可调整大小的图标粘在动态大小的 div 的底部

javascript - 函数会输出 nan 而不是数字,为什么?

javascript - 为什么 "toFixed"会阻止我的函数多次运行?

javascript - document.CreateElement(div) 不起作用...

java - 从 JavaScript (AJAX) 调用和使用 JBoss Web 服务

javascript - 在 JavaScript 中使用 toFixed(2) 会产生不良结果

javascript - JQuery toFixed 不是一个函数

javascript - Mustache.js lambdas 和数字格式化 toFixed