2009-06-15 33 views
2

我在其中一個列表中使用SPFieldCurrency列。獲取SPFieldCurrency字段的數字值

我的自定義代碼接收一個字符串值作爲參數,它包含由GetFormattedValue()方法返回的字段值。

現在我的問題是,我的方法獲得的價值包含它們當中貨幣符號,例如,$ 10,10¥,10€等

因爲貨幣符號在我的代碼中存在的時候,我對這些值做Double.TryParse(),它失敗。

如何從SPFieldCurrency對象的顯示字符串值中提取數值,而不知道貨幣的區域性信息?

+0

標籤它包括SharePoint – 2009-06-15 09:04:49

回答

2

明白了。疑難雜症是使用NumberStyles.Any。這將刪除所有貨幣符號。

我用 Double.TryParse(的valueString,NumberStyles.Any,CultureInfo.CurrentCulture.NumberFormat,超時值)

它爲我工作。由於

+0

所以這與SharePoint無關,對吧? – 2009-06-15 08:51:23

0

「你可以通過創建一個NumberFormatInfo實例並設置屬性來處理你的字符串的特定方面,例如,你想將CurrencySymbol屬性設置爲」$「,將NumberDecimalDigits屬性設置爲2,等等。」

source

你有我想唯一的問題是,有在外地多種貨幣...

+0

是的,我不知道該貨幣輸入字符串中被使用。 – ashwnacharya 2009-06-15 08:47:40

0

好吧,如果你簡單的直接解析值是這樣的:

double myvalue; 
bool success = double.TryParse(properties.ListItem["MyFieldName"].ToString(), out myvalue); 

您將獲得沒有貨幣符號的值。

但你的問題是有些模棱兩可,是從SharePoint項目中獲得的價值作爲一個雙重的問題,或者是你可以如何處理你的代碼格式化字符串的問題?

+0

嗨,我的函數接收作爲參數,共享點項目的值,作爲一個字符串,包括貨幣符號。 – ashwnacharya 2009-06-15 08:50:13