2

我在我的一个列表中使用 SPFieldCurrency 列。

我的自定义代码接收一个字符串值作为参数,其中包含 GetFormattedValue() 方法返回的字段值。

现在我的问题是我的方法收到的值中包含货币符号,例如 10 美元、10 日元、10 欧元等。

由于我的代码中存在货币符号,当我对这些值执行 Double.TryParse() 时,它会失败。

如何在不知道货币文化信息的情况下从 SPFieldCurrency 对象的显示字符串值中提取数值?

4

3 回答 3

2

知道了。问题是使用 NumberStyles.Any。这将删除所有货币符号。

我使用 Double.TryParse(valueString, NumberStyles.Any, CultureInfo.CurrentCulture.NumberFormat, out value)

它对我有用。谢谢

于 2009-06-15T08:46:56.317 回答
0

“您可以通过创建 NumberFormatInfo 实例并在其上设置属性来处理字符串的特定方面来做到这一点。例如,您希望将 CurrencySymbol 属性设置为“$”,将 NumberDecimalDigits 属性设置为 2,等等。”

来源

我猜你唯一的问题是该领域有多种货币......

于 2009-06-15T07:50:02.600 回答
0

好吧,如果你像这样简单地直接解析值:

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

您将获得没有货币符号的价值。

但是您的问题有些模棱两可,是从 SharePoint 项中获取双精度值的问题,还是如何处理代码中的格式化字符串的问题?

于 2009-06-15T08:35:46.733 回答