我有一个 sql 存储过程返回值(特征及其值)。
表格中的值是真实的,固定为 2 位小数,表格似乎不是问题,因为数字存储正确。
当我加载模板时出现问题(我使用 Python+Django),这些值列在选项卡中:
<table id="regnorme3Tab" name="regnorme3Tab" class="display" width="100%" cellspacing="0">
<thead>
<tr>
<th>ID</th>
<th>Code</th>
<th style="width:200px">Libellé</th>
<th>Limite inf</th>
<th>Valeur</th>
<th>limite sup</th>
</tr>
</thead>
<tbody>
{% for reg_norme in reg_savs %}
{%if reg_norme.Saisie == 'O' %}
<tr name="Reg_Normes" id="{{reg_norme.regauxnormes}}">
<th><span> {{reg_norme.Id}}</span></th>
<th class="codevalue"><span> {{reg_norme.Code}}</span></th>
<th style="width:200px"><span> {{reg_norme.LibEtendu}}</span></th>
<th><span> {{reg_norme.LimitInf}}</span></th>
<th><span><input type="number" max="{{reg_norme.LimitSup}}" step="0.01" min="{{reg_norme.LimitInf}}"class="{{reg_norme.Code}}" id="{{reg_norme.Id}}" value="{{reg_norme.Valeur}}" required style="width:40px;"></span></th>
<th><span> {{reg_norme.LimitSup}}</span></th>
</tr>
{%endif%}
{% endfor %}
</tbody>
</table>
如果我留下这样的东西,我的输入中不会显示任何内容,我在一些孤立的数字输入上遇到了同样的问题,我设法通过使用 parseFloat() 和 toFixed(2) 来显示数据。
document.getElementById('ebHumValue').value = parseFloat({{displayHUMHumidite}}).toFixed(2);
所以我虽然我会在我的选项卡上创建一个带有循环的函数,并使用 parseFloat 和 toFixed 来显示一些东西。
$("#regnorme3Tab :input").each(function () {
var number = this.name;
this.value = number;
alert(parseFloat(this.name).toFixed(2));
});
该函数位于 document.ready 中,因此它会在加载后正确格式化数字。
但问题是我不在选项卡中工作,我试图在不同阶段显示值,因为我不明白首先它从 22.4(在表中)变为 22.3999945754 当我打印它时,当我在它上面使用了 parseFloat(),它变成了 22,即使我使用 toFixed(2),它也变成了 22.00,我真的不明白为什么,因为在我的页面上对隔离输入进行了相同的转换。
知道为什么基值首先会发生这样的变化吗?以及我如何设法投射它以显示正确的数字?