Просто, чтобы быть передовым, мои .net и C# expierence очень ограничены, что можно сказать, что я полный noob :) Однако у меня есть некоторое понимание ООП, как я обычно работаю в PHP (FWIW).Почему toString() заставляет мою строку потерять десятичное место?
Моя проблема, кажется, с этой линией:
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" />
Из того, что я собрал, я страдал от какого-то проблем литья типа?
Надеюсь, я ничего не пропустил, его немного сложно показать весь код, но, надеюсь, кто-то может указать мне в правильном направлении?
Вопрос: как я могу получить дополнительное десятичное место, чтобы показать свою сумму (или почему она отбрасывает последнее десятичное место?).
ТИА Джаред
Спасибо за все полезные ответы ребята! Я пробовал «N2» (и «n2»), но я получаю «метод перегрузки для toString() принимает 1 аргумент« ошибка ». Я также попробовал string.Format ("{0: C0}", labelTotal3.Text); и многочисленные вариации формирования струны, но ничего, похоже, ничего не изменило. Мне нужно написать метод перегрузки toString? :( – Jared
DataTable.Compute() возвращает объект. Вероятно, вы должны его удвоить, а затем попробовать ToString. Попробуйте Session ["total"] = ((double) dt.Compute ("SUM (price)", " ")) ToString(); – Jonathan
Я просто попробовал это, и это дало мне ошибку стека, поэтому я попытался сделать dt.rows.add двойным, и это не имело значения. Hmm:/ – Jared