SPFieldCurrency GetFieldValueAsText未以正确的格式返回货币值

时间:2014-06-04 10:37:23

标签: c# sharepoint

我有一个包含货币字段欧元(法国)的Sharepoint列表。这些项目是SPList显示为:

10,000.12 €
9,222.00 €

我有以下C#代码:

CultureInfo ci = new CultureInfo(1036);//fr-FR

string value = SPFieldCurrency.GetFieldValueAsText(doubleValue, ci, ci.LCID, SPNumberFormatTypes.Automatic);

返回的值是:

10 000,12 €
9 222,00 €

我想到的第一件事就是将文化的数字格式(例如ci.CurrencyFormat.CurrencyGroupSeparator)设置为与SharePoint列表中的相同,但这就是我被困的地方。无论如何我无法从SPFieldCurrency字段中获取NumberFormat。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您应该将当前文化传递给方法,如下所示:

string value = SPFieldCurrency.GetFieldValueAsText(doubleValue, 
               Thread.CurrentThread.CurrentCulture, ci.LCID,
               SPNumberFormatTypes.Automatic);

如果将字段的文化传递给此函数,它将使用小数点和千分点来格式化值。你不能说错,但只是形成你的观点。

顺便说一句,OOB使用当前的文化。