Я использую столбец SPFieldCurrency в одном из моих списков.
Мой пользовательский код получает строковое значение в качестве параметра, которое содержит значение поля, возвращаемое методом GetFormattedValue().
Теперь моя проблема в том, что значение, полученное моим методом, содержит в них символы валют, например, 10 $, 10 ¥, 10 € и т.д.
Из-за наличия символов в моем коде, когда я делаю Double.TryParse() для этих значений, он терпит неудачу.
Как извлечь числовое значение из значения строки отображения объекта SPFieldCurrency, не зная информацию о культуре в валюте?
Получил это. В gotcha должен использоваться NumberStyles.Any. Это приведет к удалению всех символов валюты.
Я использовал Double.TryParse(valueString, NumberStyles.Any, CultureInfo.CurrentCulture.NumberFormat, out value)
Это сработало для меня. Благодаря
Хорошо, если вы просто проанализируете значение прямо следующим образом:
double myvalue;
bool success = double.TryParse(properties.ListItem["MyFieldName"].ToString(), out myvalue);
У вас будет значение без символа валюты.
Но ваш вопрос несколько неоднозначен, проблема в том, чтобы получить значение из элемента SharePoint как двойное, или это проблема с тем, как вы можете обрабатывать форматированную строку в вашем коде?
"Вы можете сделать это, создав экземпляр NumberFormatInfo и установив для него свойства для обработки конкретных аспектов вашей строки. Например, вы хотите установить для свойства CurrencySymbol значение" $", свойство NumberDecimalDigits - 2 и т.д.."
Единственная проблема, которую я имею в виду, заключается в том, что в области есть несколько типов валют...