Я вычисляю строки с итогом с помощью плагина jQuery.Calculation , но итог игнорирует все после десятичного знака. Я подозреваю, что исправление лежит в регулярном выражении, но я не могу понять, где.
Следующий метод должен установить правильное значение по умолчанию для европейских десятичных дробей, он работает в строке, но метод суммы для расчета игнорирует десятичные числа. Приведенное ниже регулярное выражение является исправлением для официального релиза, но оно все еще не работает правильно.
$.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 получается 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)
);
}
);
Использование регулярного выражения по умолчанию для стиля чисел в США это работает правильно, но мне нужно, чтобы вычисления работали с ,
в качестве десятичного символа