获取货币列表项目值

时间:2011-12-19 15:39:55

标签: c# visual-studio-2010 sharepoint sharepoint-2010 listitem

我有一个包含两个colums类型的列表。我希望能够读取此字段中的值,并包含小数位和当前符号。

我尝试了三种不同的方法,但我似乎只得到数字而不是currentcny符号。十进制值也未正确显示。使用小数类型的列是“InstallCosts”和“RentalCosts”。

foreach (SPListItem item in listItemCollection)
{
try
{
string MPLS;
if ((bool)item["MPLS"])
MPLS = "Yes";
else
MPLS = "No";

//Conversion 1
double installCost;
bool convert1 = double.TryParse(item["InstallCosts"].ToString(), out installCost);

double rentalCost;
bool convert2 = double.TryParse(item["RentalCosts"].ToString(), out rentalCost);


//Conversion 2
string install = item["InstallCosts"].ToString();
double installConverted = double.Parse(install, NumberStyles.Currency,
CultureInfo.CurrentCulture.NumberFormat);

//Conversion 3
//string converThis = String.Format("[0:c}", (string)item["InstallCosts"]);


string results56 = (string)item["Title"] + " " + (string)item["DefinedFor"] + " " +
"<b>MPLS:</b> " + MPLS + "<br/>" + "<b>Max Downstream:</b> " + 
(string)item["MaxDownstream"] + "<br/>" + "Install Cost:" + converThis + "<br/>" 
+ "Rental Cost (p.a.):" + rentalCost + "<br/>";

AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(results56));
}

结果如下:

Alpaca一款脏ADSL产品适用于:CCTV第三方远程访问交互模型和网站测试。 MPLS:没有 最大下游: 安装费用:50 租金(p.a。):425.7

“安装费用”的结果应为:£50.00 “租赁费用”的结果应为:£425.70

我已经被这个问题困住了一天了,我会很感激任何帮助,这可能是我所遗漏的东西,但我真的看不出来了!

非常感谢,

1 个答案:

答案 0 :(得分:2)

在.net中,这些数字不包含任何货币或任何其他格式信息。所以你必须自己添加货币符号:

SPListItem item = ...;
double d = Convert.ToDouble(item["InstallCosts"]);
// will display the number in the current threads culture. In the US: $ <value>
string currency = d.ToString("C");