2013-03-23 65 views
0

使用VS 2012,Windows窗體,C#使用正則表達式分裂出一個十進制數

如果我有一個decimal變量稱爲productPrice,我想它的數量分成兩個數字,到電梯的左邊十進制和小數點以及右邊的數字,我需要使用什麼regex模式?

例如:如果productPrice = 3.75我怎麼能拆呢,所以我有一個變量,它是3,另一個變量是.75

謝謝!

+1

您是否知道在德國的系統中,它不是一個點('.'),而是一個逗號(',')被用作小數分隔符? – 2013-03-23 20:00:29

+0

當然[最好的答案來自Jon Skeet](http://stackoverflow.com/a/362453/107625)。另外,您不必不必要地轉換爲字符串。 – 2013-03-23 20:05:35

+1

謝謝你Uwe! – BackDoorNoBaby 2013-03-23 20:10:15

回答

1

你不需要正則表達式來做到這一點,你可以做一個簡單的productPrice.ToString().Split('.')

使用這個號碼,你可以做

var price = productPrice.ToString(CultureInfo.CreateSpecificCulture("en-GB")).Split('.'); 
var dolars = price[0]; 
var cents = price[1]; 
+1

雖然不在德國工作,但是;-) – 2013-03-23 20:01:23

+0

然後,我如何使用這些數字?而且我需要保留第二個數字的小數,我試圖將一筆錢分成總美元和美分。 – BackDoorNoBaby 2013-03-23 20:02:47

+0

@BackDoorNoBaby你可以使用類似'productPrice.ToString(CultureInfo.InvariantCulture).Split('。')''的東西。 – 2013-03-23 20:03:57

3

如果你已經有了一個小數類型,你可以強制轉換爲整數來獲得整數部分:

var intPortion = (int)productPrice; 
var remainder = productPrice - intPortion;