我正计算总计为jQuery.Calculation plugin的行,但总计忽略小数点后的所有内容。我怀疑修复在于正则表达式,但我无法弄清楚在哪里。
以下方法应设置欧洲小数的默认正确,它适用于pr行,但计算的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)
);
}
);
使用美国数字样式的默认正则表达式,这可以正常工作,但我需要使用,
计算作为小数符号
答案 0 :(得分:0)
我得到了它的工作。我联系了作者,他告诉我以下默认值。您需要注意的是,总计是通过对行总计求和来计算的,所以要小心打印行总计中的正确小数符号。
$.Calculation.setDefaults({
// a regular expression for detecting European-style formatted numbers
reNumbers: /(-|-\$)?(\d+(\.\d{3})*(\,\d{1,})?|\,\d{1,})?/g
// define a procedure to convert the string number into an actual usable number
, cleanseNumber: function (v){
// cleanse the number one more time to remove extra data (like commas and dollar signs)
// use this for European numbers: v.replace(/[^0-9,\-]/g, "").replace(/,/g, ".")
return v.replace(/[^0-9,\-]/g, "").replace(/,/g, ".");
}
})