如何将税和brutto值舍入到2位小数...
我试过使用.toFixed(2)但是返回一个字符串,然后我再也无法用它计算了。
如果有人可以更新小提琴并让它工作吗?
并尝试输入23号
// calculate brutto and tax
$(document).on('keyup paste', '#netto', function () {
var netto = $("#netto").val();
$("#brutto").val(netto * 1.19).toFixed(2);
var brutto = $("#brutto").val();
$("#tax").val(brutto - netto);
});
您的代码中几乎没有问题:
1)除非您动态加载元素,否则不需要事件委派。
2)在对它们进行任何数学运算之前,应始终解析值。
3)你在jquery方法上使用.toFixed(2)
,它抛出错误。 toFixed
应该与浮点值一起使用。还要确保在设置两个文本框值时使用toFixed:
// calculate brutto and tax
$('#netto').on('keyup paste', function () {
var netto = parseFloat($("#netto").val());
$("#brutto").val((netto * 1.19).toFixed(2));
var brutto = parseFloat($("#brutto").val());
$("#tax").val((brutto - netto).toFixed(2));
});
试试这可能对你有帮助,
$(document).on('keyup paste', '#netto', function () {
var netto = parseFloat($("#netto").val()).toFixed(2);
$("#brutto").val((netto * 1.19).toFixed(2));
var brutto = parseFloat($("#brutto").val()).toFixed(2);
$("#tax").val((brutto - netto).toFixed(2));
});
在jQuery上下文之外,您可以充分利用以下函数:
function round(value, precision) {
var aPrecision = Math.pow(10, precision);
return Math.round(value*aPrecision)/aPrecision;
}
这是您更新的小提示,展示其用途:https://jsfiddle.net/yuq6kLn2/
您需要使用Number作为.val()
中的第一个参数,以确保您的所有值都是数字,否则如果至少有一个不是数字,那么您将遇到我之前遇到的问题。见下文:
$("#tax").val(Number(brutto - netto).toFixed(2));