我在我的一个列表中使用SPFieldCurrency列。
我的自定义代码接收一个字符串值作为参数,其中包含GetFormattedValue()方法返回的字段值。
现在我的问题是我的方法收到的值中包含货币符号,例如10 $,10¥,10€等。
由于我的代码中存在货币符号,当我对这些值执行Double.TryParse()时,它会失败。
如何在不知道货币的文化信息的情况下从SPFieldCurrency对象的显示字符串值中提取数值?
答案 0 :(得分:2)
知道了。问题是使用NumberStyles.Any。这将删除所有货币符号。
我用过 Double.TryParse(valueString,NumberStyles.Any,CultureInfo.CurrentCulture.NumberFormat,out value)它对我有用。感谢
答案 1 :(得分:0)
“您可以通过创建NumberFormatInfo实例并在其上设置属性来处理字符串的特定方面来实现此目的。例如,您要将CurrencySymbol属性设置为”$“,将NumberDecimalDigits属性设置为2,等等。“
我猜你唯一的问题是该领域有多种货币......
答案 2 :(得分:0)
好吧,如果你直接解析这个值就像这样:
double myvalue;
bool success = double.TryParse(properties.ListItem["MyFieldName"].ToString(), out myvalue);
您将拥有没有货币符号的值。
但是你的问题有些含糊不清,将问题从SharePoint项目中取出来是一个问题,或者问题是你如何处理代码中的格式化字符串?