0

从使用 linq 获取双精度值并将其转换为字符串时出现问题。我的代码是:-

 public List<ShowDataOnClient> GetCardListToShow()
    {
        try
        {
            List<ShowDataOnClient> CardList = new List<ShowDataOnClient>();
            using (ProgressCardLINQDataContext c = new ProgressCardLINQDataContext())
            {
                CardList = (from card in c.GetTable<T_PROGRESSCARD>()
                            where card.RecordStatus.Equals(RecordStatus.Active)
                            select new ShowDataOnClient
                            {
                                Student=(from student in c.T_STUDENTs
                                         where student.Id.Equals(card.StudentId)
                                         select student.Name).Single().ToString(),
                                Test=(from test in c.T_TESTs
                                      where test.Id.Equals(card.TestId)
                                      select test.Name).Single().ToString(),
                                MaxMarks = (from test in c.T_TESTs
                                            where test.Id.Equals(card.TestId)
                                            select test.MaxMarks).Single().ToString(),
                                MarksObtain=card.MarksObtain.ToString(),
                                Percentage=card.Percentage.ToString()

                            }).ToList<ShowDataOnClient>();
            }
            return CardList;
        }
        catch
        {
            return new List<ShowDataOnClient>();
        }
    }

我也试过这个: -

 Percentage=Math.Truncate(card.Percentage).ToString()

当我在 ToString 中传递“N2”时,它会给出异常“方法'System.String ToString(System.String)'没有支持的 SQL 转换。”

我转换后得到的值是这样的:- 5.200000000000000e+001

有没有人帮我..

4

2 回答 2

2

您的ShowDataOnClient类应该将 的值存储Percentagedouble. 您可以格式化在稍后阶段向用户呈现双打的方式。你如何做到这一点取决于你用来显示数据的控件。

这具有额外的好处,即排序功能可以按预期工作。如果您这么早将百分比转换为字符串,则按该列排序看起来不正确

% as String     % as double
1%              1%
10%             2%
11%             10%
2%              11%
23%             23%
etc.            etc.
于 2012-10-05T10:09:00.667 回答
0

尝试这个:

double Percentage = card.Percentage;

string PercentageStr = Percentage.ToString();

这不会调用 linq to sql 并给你你想要的。

于 2012-10-05T09:59:36.503 回答