如何使用c#中的mschart以百分比格式显示数据点

时间:2015-08-11 15:32:48

标签: c# mschart

我一直在尝试以ms格式显示我的数据点的百分比,格式为00.00%。我无法弄清楚如何。

我用它作为我的系列标签

chart1.Series[1].Label = "#PERCENT";

并且在图表上结果如此,值无法正确显示。

enter image description here

数据来自数据表,这就是我填充图表的方式

 //Chart data points
                foreach(DataRow r in dt.Rows)
                {
                    object wk = (r["week_num"]).ToString();
                    object fpy = (r["fpy"]); // First pass yield percentage
                    object thrput = (r["throughput"]).ToString();

                    chart1.Series[0].Points.AddXY(wk, thrput);
                    chart1.Series[1].Points.AddXY(wk, fpy);
                }

我不确定如何更正格式化折线图中的数据点以显示正确的值和百分比格式。

有什么建议吗?

编辑:

如果我删除此行

chart1.Series[1].Label = "#PERCENT";

值正确但不是百分比格式

enter image description here

2 个答案:

答案 0 :(得分:2)

您必须格式化标签样式

尝试chart.ChartAreas.AxisX.LabelStyle.Format = "{00:00}"

实际上您可能需要自定义percent specifer

我认为它的'设置为默认显示一个数字(在点之前)

e.g。

double value = .086;
Console.WriteLine(value.ToString("#0.##%", CultureInfo.InvariantCulture));
Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                "{0:#0.##%}", value));
// Displays 8.6%  

你必须覆盖它并加入额外的零

答案 1 :(得分:1)

我决定将fpy转换为小数并删除所有小数点。我现在在线图数据点上显示正确的值。谢谢大家的帮助! :)

decimal fpy = Convert.ToDecimal(string.Format("{0:F0}", ((r["fpy"])))); // First pass yield percentage