jQuery - 舍入到小数点后2位并使用该数字计算

时间:2016-12-15 13:21:11

标签: jquery rounding

如何将税和brutto值舍入到2位小数......

我试过使用.toFixed(2)但是返回一个字符串然后我就不能用它来计算了。

如果有人可以更新小提琴并让它运作起来吗?

并尝试输入数字23

DEMO Fiddle

// 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);

});

4 个答案:

答案 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));