我正在使用jQuery.Calculation 插件计算总计行,但总计忽略了小数点后的所有内容。我怀疑修复存在于正则表达式中,但我不知道在哪里。
以下方法应为欧洲小数设置默认正确值,它适用于行,但计算的 sum 方法忽略了小数。下面的正则表达式是对官方版本的修复,但它仍然不能正常工作。
$.Calculation.setDefaults({
reNumbers: /(-|-\$)?(\d+(.\d{3})*(\,\d{1,})?|\.\d{1,})/g
, cleanseNumber: function (v) {
return v.replace(/[^0-9,\-]/g, "").replace(/,/g, ".");
}
});
示例:7834,45 * 1 给出了该行的正确总和 7834,45,但是当使用 jQuery.Calculation sum 方法计算总数时,结果为 7834,没有小数
这是计算总数的代码,或多或少直接从示例中提取
$("[id^=total_umva_item_]").calc(
// the equation to use for the calculation
"qty * price",
// define the variables used in the equation, these can be a jQuery object
{
qty: $("input[name^=antall_]"),
price: $("input[name^=price_]")
},
// define the formatting callback, the results of the calculation are passed to this function
function (s) {
// return the number as a dollar amount
return "kr " + s.toFixed(2);
},
// define the finish callback, this runs after the calculation has been complete
function ($this) {
// sum the total of the $("[id^=total_item]") selector
var sum = $this.sum(); <- The sum is calculated without decimals
$("#invoice-totals-net").text(
"kr " + sum.toFixed(2)
);
}
);
使用美国数字样式的默认正则表达式可以正常工作,但我需要将计算,
用作十进制符号