【问题标题】:How do you display data points in percentage format using mschart in c#如何在 c# 中使用 mschart 以百分比格式显示数据点
【发布时间】:2015-08-13 05:01:19
【问题描述】:

我一直在尝试以 00.00% 的格式在 ms 图表中显示我的数据点的百分比。我不知道怎么做。

我用这个作为我的系列标签

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

结果在图表上是这样的,数值显示不正确。

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

 //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";

数值正确,但不是百分比格式

【问题讨论】:

  • 所以你想要一个领先的0?例如04.21%。请澄清“不正确”
  • 我编辑了我的问题

标签: c# mschart


【解决方案1】:

您必须格式化标签样式

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

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

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

例如

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

你必须覆盖它并输入一个额外的零

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      • 2020-05-20
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多