Получить числовое значение поля SPFieldCurrency

2

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

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

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

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

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

  • 0
    пометить как Sharepoint
Теги:
type-conversion
sharepoint
currency

3 ответа

2
Лучший ответ

Получил это. В gotcha должен использоваться NumberStyles.Any. Это приведет к удалению всех символов валюты.

Я использовал Double.TryParse(valueString, NumberStyles.Any, CultureInfo.CurrentCulture.NumberFormat, out value)

Это сработало для меня. Благодаря

  • 0
    Так что это никак не связано с SharePoint, верно?
0

Хорошо, если вы просто проанализируете значение прямо следующим образом:

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

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

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

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

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

источник

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню