2009-06-15 9 views
2

Я использую столбец SPFieldCurrency в одном из моих списков.Получить числовое значение поля SPFieldCurrency

Мой пользовательский код получает строковое значение в качестве параметра, которое содержит значение поля, возвращаемое методом GetFormattedValue().

Теперь моя проблема заключается в том, что значение, полученное с помощью моего метода содержат символы валюты в них, например, 10 $, 10 ¥, 10 € и т.д.

Из-за наличия валютных символов в моем коде, когда Я делаю Double.TryParse() для этих значений, он терпит неудачу.

Как извлечь числовое значение из значения строки отображения объекта SPFieldCurrency, не зная информацию о культуре в валюте?

+0

отметить его как Sharepoint –

ответ

2

Got it. В gotcha должен использоваться NumberStyles.Any. Это удаляет все символы валюты.

Я использовал Double.TryParse (valueString, NumberStyles.Any, CultureInfo.CurrentCulture.NumberFormat, из значения)

Он работал для меня. Спасибо

+0

Так что это не имеет ничего общего с SharePoint, верно? –

0

«Вы можете сделать это, создав экземпляр NumberFormatInfo и установив для него свойства для обработки определенных аспектов вашей строки. Например, вы хотите установить для свойства CurrencySymbol значение« $ », свойство NumberDecimalDigits - 2, и т.д."

source

Единственная проблема у вас есть я думаю, что есть несколько типов валюты в поле ...

+0

Да, я не знаю, какая валюта используется в входящей строке. – ashwnacharya

0

Ну, если вы просто разобрать значение непосредственно, как это:

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

У вас будет значение без символа валюты.

Но ваш вопрос несколько неоднозначен, проблема заключается в том, чтобы получить значение из элемента SharePoint в виде двойника или проблема в том, как вы можете обрабатывать форматированную строку в коде?

+0

Привет, моя функция получает в качестве параметра значение элемента sharepoint как строку, включая символ валюты. – ashwnacharya