【发布时间】:2017-05-01 04:19:51
【问题描述】:
为了向前,我的 .net 和 c# 经验非常有限,有人可以说我是一个完全的菜鸟 :) 但是我确实掌握了一些 OOP,因为我通常使用 PHP (FWIW) 工作。
我的问题似乎与这一行有关:
Session["total"] = dt.Compute("SUM(price)", "").ToString();
这将输出总共说“9.2”,其中价格是“9.20”,从几行这样的记录:
dt.Rows.Add(strRecord, 9.20, dropDownListDistrict_stepTitle.Text);
因此 9.20 + 9.20 = "18.40",但页面显示 "18.4"。
显示总和的标签是:
<asp:Label ID="labelTotal3" runat="server" Text="0" />
根据我收集到的信息,我遇到了某种类型转换问题?
希望我没有遗漏任何内容,显示所有代码有点困难,但希望有人能指出我正确的方向?
问题是;我怎样才能得到一个额外的小数位来显示我的总和(或者为什么它会去掉最后一个小数位?)。
TIA 贾里德
【问题讨论】:
-
感谢所有有用的答案!我尝试了“N2”(和“n2”),但我得到“toString() 的无重载方法需要 1 个争论”错误。我也试过 string.Format("{0:C0}", labelTotal3.Text);以及格式化字符串的多种变体,但似乎没有任何改变。我需要写一个toString的重载方法吗? :(
-
DataTable.Compute() 返回一个对象。您可能应该将其转换为双倍,然后尝试 ToString。试试 Session["total"] = ((double)dt.Compute("SUM(price)", "")).ToString();
-
我刚刚尝试过,它给了我一个堆栈错误,所以我尝试将 dt.rows.add 强制转换为 double 并且没有任何区别。嗯:/