使用VS 2012,Windows窗體,C#使用正則表達式分裂出一個十進制數
如果我有一個decimal
變量稱爲productPrice
,我想它的數量分成兩個數字,到電梯的左邊十進制和小數點以及右邊的數字,我需要使用什麼regex
模式?
例如:如果productPrice = 3.75
我怎麼能拆呢,所以我有一個變量,它是3
,另一個變量是.75
謝謝!
使用VS 2012,Windows窗體,C#使用正則表達式分裂出一個十進制數
如果我有一個decimal
變量稱爲productPrice
,我想它的數量分成兩個數字,到電梯的左邊十進制和小數點以及右邊的數字,我需要使用什麼regex
模式?
例如:如果productPrice = 3.75
我怎麼能拆呢,所以我有一個變量,它是3
,另一個變量是.75
謝謝!
你不需要正則表達式來做到這一點,你可以做一個簡單的productPrice.ToString().Split('.')
使用這個號碼,你可以做
var price = productPrice.ToString(CultureInfo.CreateSpecificCulture("en-GB")).Split('.');
var dolars = price[0];
var cents = price[1];
雖然不在德國工作,但是;-) – 2013-03-23 20:01:23
然後,我如何使用這些數字?而且我需要保留第二個數字的小數,我試圖將一筆錢分成總美元和美分。 – BackDoorNoBaby 2013-03-23 20:02:47
@BackDoorNoBaby你可以使用類似'productPrice.ToString(CultureInfo.InvariantCulture).Split('。')''的東西。 – 2013-03-23 20:03:57
如果你已經有了一個小數類型,你可以強制轉換爲整數來獲得整數部分:
var intPortion = (int)productPrice;
var remainder = productPrice - intPortion;
您是否知道在德國的系統中,它不是一個點('.'),而是一個逗號(',')被用作小數分隔符? – 2013-03-23 20:00:29
當然[最好的答案來自Jon Skeet](http://stackoverflow.com/a/362453/107625)。另外,您不必不必要地轉換爲字符串。 – 2013-03-23 20:05:35
謝謝你Uwe! – BackDoorNoBaby 2013-03-23 20:10:15