JavaScript "显示"浮点数为整数



我有以下脚本来计算HTML表的平均行数:

$(document).ready(function() {
$('tr').each(function() {
var count = 0;
var totmarks = 0;
$(this).find('.subjects').each(function() {
var marks = $(this).text();
if (marks.lenght !== 0) {
totmarks += parseFloat(marks);
count += 1;
}
});
$(this).find('#TotMarks').html(totmarks / count);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1" style="text-align:center;">
<thead>
<tr>
<th>Student Name</th>
<th>Math</th>
<th>Spanish</th>
<th>Science</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pedro</td>
<td class="subjects">4.0</td>
<td class="subjects">5.0</td>
<td class="subjects">6.0</td>
<td id="TotMarks"></td>
</tr>
</tbody>
</table>

然后平均列将显示整数5而不是5.0,有解决方案吗?

在JavaScript中,整数总是不带小数点显示使用toFixed(number_of_digits_after_decimal)进行小数

从而解决

$(this).find('#TotMarks').html((totmarks/count).toFixed(1));

这会得到你想要的结果。

使用toFixed()

toFixed()方法使用定点表示法格式化数字。

$(document).ready(function() {
$('tr').each(function() {
var count = 0;
var totmarks = 0;
$(this).find('.subjects').each(function() {
var marks = $(this).text();
if (marks.lenght !== 0) {
totmarks += parseFloat(marks);
count += 1;
}
});
$(this).find('#TotMarks').html((totmarks / count).toFixed(1));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table border="1" style="text-align:center;">
<thead>
<tr>
<th>Student Name</th>
<th>Math</th>
<th>Spanish</th>
<th>Science</th>
<th>Average</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pedro</td>
<td class="subjects">4.0</td>
<td class="subjects">5.0</td>
<td class="subjects">6.0</td>
<td id="TotMarks"></td>
</tr>
</tbody>
</table>

(totmarks/count).toLocaleString(undefined, {minimumFractionDigits: 1})替换totmarks/count能达到您想要的目的吗?

请参阅Number.protype.toLocaleString((了解如何格式化数字以进行显示。

最新更新