0
我正在計算與jQuery.Calculation plugin合計的行,但總計忽略了小數點符號後的所有內容。我懷疑修復在於正則表達式,但我無法弄清楚在哪裏。使用jQuery計算歐洲格式的數字的問題
以下方法應該爲歐洲小數設置默認的正確值,它工作的是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總和方法時這出來作爲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)
);
}
);
使用美國編號樣式默認的正則表達式這項工作正確撕開直,但我需要的計算與,
工作作爲小數點個符號l
你能舉例說明一些失敗的值嗎? – 2010-06-20 14:32:14
@Pekka一些地方使用逗號,其中美國人(除其他外我肯定)使用句號,反之亦然。因此,對於美國人來說,123,456意味着「十二萬三千四百五十六分之五」,而對歐洲來說意味着「十二萬三千四百五十六分之一」。 (也許你知道,但現在它是在這裏爲所有加入我們的年輕人:-) – Pointy 2010-06-20 15:02:44
@Pointy是的,我意識到這一點,但很好指出。我要求提供一些實際數據,因爲歐洲甚至存在地區差異:例如德國的「123.456」,瑞士的「123'456」......這是一個很長的故事,通常的答案是,儘快轉換成英語儘可能:) – 2010-06-20 15:16:25