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

问题描述 投票:3回答:4

如何将税和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);

});
jquery rounding
4个回答
5
投票

您的代码中几乎没有问题:

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

Working Demo


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

 });

1
投票

在jQuery上下文之外,您可以充分利用以下函数:

function round(value, precision) {
    var aPrecision = Math.pow(10, precision);
    return Math.round(value*aPrecision)/aPrecision;
}

这是您更新的小提示,展示其用途:https://jsfiddle.net/yuq6kLn2/


0
投票

您需要使用Number作为.val()中的第一个参数,以确保您的所有值都是数字,否则如果至少有一个不是数字,那么您将遇到我之前遇到的问题。见下文:

$("#tax").val(Number(brutto - netto).toFixed(2));
© www.soinside.com 2019 - 2024. All rights reserved.