【发布时间】:2011-07-26 10:26:27
【问题描述】:
我正在尝试使用以下代码将货币符号添加到总价值
using System.Globalization;
double value;
double totalValue = 0.0;
foreach (DataRow row in reportData.Rows)
{
if (double.TryParse(row["value"].ToString(), out value))
{
totalValue += value;
RegionInfo rgi = new RegionInfo("en-UK");
totalValue += Convert.ToString(string.Format(" CurrencySymbol: {0}\n", rgi.CurrencySymbol));
}
}
它给出了错误 can't convert type string to double
有人能帮我吗
修改后的代码:
int count;
int total = 0;
double value;
double totalValue = 0.0;
foreach (DataRow row in reportData.Rows)
{
if (double.TryParse(row["value"].ToString(), out value))
{
totalValue += value;
}
if (!Overview && int.TryParse(row["mshipssold"].ToString(), out count))
{
total += count;
}
}
DataRow totalRow = reportData.NewRow();
totalRow["mshipType_Name"] = "Total";
totalRow["mshipssold"] = total;
totalRow["value"] = totalValue;
reportData.Rows.Add(totalRow);
targetChartControl.Series["Value"].Points.DataBindXY(reportData.Rows, "mshipType_Name", reportData.Rows, "value");
if (!Overview)
{
targetChartControl.Series["Quantity"].Points.DataBindXY(reportData.Rows, "mshipType_Name", reportData.Rows, "mshipssold");
}
}
修改代码:1
图
我想在蓝条上显示 3830 英镑、2070 英镑、5090 英镑
这是我的代码
try
{
DataTable reportData = KPIData.MembershipSales(StartDate, EndDate, mf);
Series quantitySeries;
Series valueSeries = null;
Title title;
string area;
targetChartControl.ChartAreas.Clear();
targetChartControl.Series.Clear();
targetChartControl.Titles.Clear();
area = "Value";
targetChartControl.ChartAreas.Add(area);
quantitySeries = targetChartControl.Series.Add(area);
quantitySeries.ChartArea = area;
if (!Overview)
{
title = targetChartControl.Titles.Add("Membership Sales by Total Contract Value by Type");
title.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
title.Alignment = ContentAlignment.TopLeft;
title.DockedToChartArea = area;
targetChartControl.Titles.Add("").DockedToChartArea = area;
}
targetChartControl.Titles.Add("Membership sale values").DockedToChartArea = area;
if (!Overview)
{
area = "Quantity";
targetChartControl.ChartAreas.Add(area);
quantitySeries = targetChartControl.Series.Add(area);
quantitySeries.ChartArea = area;
title = targetChartControl.Titles.Add("Membership Sales by Quantity");
title.Font = new Font(FontFamily.GenericSansSerif, 10, FontStyle.Bold);
title.Alignment = ContentAlignment.TopLeft;
title.DockedToChartArea = area;
targetChartControl.Titles.Add("").DockedToChartArea = area;
targetChartControl.Titles.Add("Membership sale quantities").DockedToChartArea = area;
}
foreach (Title chartTitle in targetChartControl.Titles)
{
chartTitle.IsDockedInsideChartArea = false;
}
foreach (ChartArea chartArea in targetChartControl.ChartAreas)
{
chartArea.Area3DStyle.Enable3D = true;
chartArea.AxisX.LabelStyle.IsEndLabelVisible = true;
}
foreach (Series series in targetChartControl.Series)
{
series.ChartType = SeriesChartType.StackedColumn;
series["ColumnDrawingStyle"] = "SoftEdge";
series["LabelStyle"] = "Top";
series.IsValueShownAsLabel = true;
// series.CustomProperties = "DrawingStyle=Cylinder";
series.BackGradientStyle = GradientStyle.DiagonalLeft;
}
foreach (Legend legend in targetChartControl.Legends)
{
legend.Enabled = false;
}
if (reportData == null)
{
valueSeries.Points.Clear();
valueSeries.Points.AddXY("No sales for this time period", 0);
if (!Overview)
{
quantitySeries.Points.Clear();
quantitySeries.Points.AddXY("No sales for this time period", 0);
}
}
else
{
int count;
int total = 0;
double value;
double totalValue = 0.0;
foreach (DataRow row in reportData.Rows)
{
if (double.TryParse(row["value"].ToString(), out value))
{
totalValue += value;
}
if (!Overview && int.TryParse(row["mshipssold"].ToString(), out count))
{
total += count;
}
}
CultureInfo rgi = new CultureInfo("en-GB");
string totalcurrency = string.Format(rgi, "{0:C}", totalValue);
DataRow totalRow = reportData.NewRow();
totalRow["mshipType_Name"] = "Total";
totalRow["mshipssold"] = total;
totalRow["value"] = totalcurrency;
reportData.Rows.Add(totalRow);
targetChartControl.Series["Value"].Points.DataBindXY(reportData.Rows, "mshipType_Name", reportData.Rows, "value");
if (!Overview)
{
targetChartControl.Series["Quantity"].Points.DataBindXY(reportData.Rows, "mshipType_Name", reportData.Rows, "mshipssold");
}
}
}
catch
{
}
【问题讨论】:
-
我相信您正在显示图表并希望符号出现在图表上?如果是这样,您应该尝试在图表控件中设置格式,例如 Y 轴的
Format='C'
标签: c# .net double globalization mschart