如何将税和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);
});
答案 0 :(得分:5)
您的代码中几乎没有问题:
1)除非您动态加载元素,否则不需要事件委派。
2)你应该在对它们进行任何数学运算之前解析值。
3)你在jquery方法上使用了.toFixed(2)
,它抛出了错误。 toFixed
应与float值一起使用。还要确保在设置两个文本框值时使用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));
});
<强> Working Demo 强>
答案 1 :(得分:1)
试试这可能对你有帮助,
$(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));
});
答案 2 :(得分:1)
在jQuery上下文之外,您可以充分利用以下函数:
function round(value, precision) {
var aPrecision = Math.pow(10, precision);
return Math.round(value*aPrecision)/aPrecision;
}
这是您更新的小提示,展示其用途:https://jsfiddle.net/yuq6kLn2/
答案 3 :(得分:0)
您需要将Number用作.val()
中的第一个参数,以确保您所有的值都是数字,否则,如果至少一个不是数字,则会遇到我以前遇到的问题。见下文:
$("#tax").val(Number(brutto - netto).toFixed(2));