获取SPFieldCurrency字段的数值

时间:2009-06-15 04:50:37

标签: c# .net sharepoint type-conversion currency

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

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

现在我的问题是我的方法收到的值中包含货币符号,例如10 $,10¥,10€等。

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

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

3 个答案:

答案 0 :(得分:2)

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

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

它对我有用。感谢

答案 1 :(得分:0)

“您可以通过创建NumberFormatInfo实例并在其上设置属性来处理字符串的特定方面来实现此目的。例如,您要将CurrencySymbol属性设置为”$“,将NumberDecimalDigits属性设置为2,等等。“

source

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

答案 2 :(得分:0)

好吧,如果你直接解析这个值就像这样:

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

您将拥有没有货币符号的值。

但是你的问题有些含糊不清,将问题从SharePoint项目中取出来是一个问题,或者问题是你如何处理代码中的格式化字符串?