Javascript格式编号从8403.361344537816到8.403

javascript format numbers from 8403.361344537816 to 8.403

本文关键字:361344537816 8403 格式 编号 Javascript      更新时间:2023-09-26

我有一个javascript来计算税收,它是这样工作的

html表单

 <td><input type="text" class="input-180" name="pbruto" id="pbruto" value="0"/></td>
    <td><input type="text" class="input-180" name="pneto" id="pneto" value="0"></td>
    <td><input type="text" class="input-180" name="piva" id="piva" value="0"></td>

javascript代码

<script>
var taxPerc = 1.19; 
document.getElementById("pbruto")
.onkeyup = function(){
document.getElementById("pneto")
.value = parseFloat(document.getElementById("pbruto")
.value) * (1.00 / taxPerc)
document.getElementById("piva")
.value = parseFloat(document.getElementById("pbruto")
.value) - parseFloat(document.getElementById("pneto").value)
}
</script>

问题是我从计算中得到的结果是这样显示的

8403.361344537816

我需要去掉那些。361344537816并将数字格式化为8.403

有什么办法吗?

编辑暂无解决方案

让var x保存值,试试:

x = parseInt(x) / 1000

如果使用变量而不是DOM来存储值,则更容易控制代码。我已经重写了你的代码,和toLocaleString()方法似乎做你想要的:

var taxPerc = 1.19;
document.getElementById("pbruto").addEventListener('input', function () {
    var valNeto, valPiva,
    	elNeto = document.getElementById("pneto"),
    	elBruto = document.getElementById("pbruto"),
        elPiva = document.getElementById("piva"),
        valBruto = +(elBruto.value);
    valNeto = valBruto * (1 / taxPerc);
    valPiva = valBruto - valNeto;
    elNeto.value = Math.round(valNeto).toLocaleString('de-DE');
    elPiva.value = Math.round(valPiva).toLocaleString('de-DE');
});
label {
    display: block;
}
<label>Bruto: <input id="pbruto" /></label>
<label>Neto: <input id="pneto" /></label>
<label>Piva: <input id="piva" /></label>