Получить числовое значение поля SPFieldCurrency - PullRequest
2 голосов
/ 15 июня 2009

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 15 июня 2009

Понял. Нужно использовать NumberStyles.Any. Это удаляет все символы валюты.

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

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

0 голосов
/ 15 июня 2009

Что ж, если вы просто проанализируете значение прямо так:

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

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

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

0 голосов
/ 15 июня 2009

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

источник

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...