Десятичный тип данных удаляет конечные нули, когда они необходимы для отображения

Веб-приложение, которое ям работает (другой разработчик написал это) имеет десятичную переменную, которая сбрасывает два нуля 'с после десятичного. Он не сбрасывает последние 2 цифры, если они содержат число> 0 или комбинация. Значение исходит из текстового файла.

Пример текстового значения:261.00

Пример десятичной переменной (TotalDue):261

Во время отладки, когда я наведите курсор на "TotalDue» (в приведенном ниже примере кода) значение отображается как 261, и когда я раскрываю отладчик, он читает "261m ":

decimal TotalDue = Convert.ToDecimal(InputRow.Substring(260, 12));

Я попытался ввести его в виде строки (но изначально он все еще читается как "261" вместо 261,00), а затем преобразовать его различными способами следующим образом. Ничего не работает!

string TotalDue = InputRow.Substring(260, 12);

strTotalDue = String.Format("{0:F2}", TotalDue);

strTotalDue = String.Format("{0:N2}", TotalDue);

strTotalDue = String.Format(TotalDue, "0.00");

strTotalDue = TotalDue.ToString("G29");  

strTotalDue = String.Format("{0:0.00}", TotalDue);

strTotalDue = TotalDue.ToString("N2");//used this one with decimal data type

Что мне не хватает? Имеет ли значение, откуда берутся данные текстового файла? Это началось в базе данных Access.

ОБНОВИТЬ: Сегодня (1/15/15) я понял, что никогда не отмечал ответ, потому что в итоге я отказался от исходного кода и переписал его в C # .net. Я отмечу Коул Кэмпбеллответ правильный, потому что его замечания ("создайте десятичное число таким образом, чтобы обеспечить его достаточными данными относительно точности ввода. ") это то, что побудило меня придумать решение, которое я сделал, чтобы манипулировать поступающими данными. Я сделал это в методе - показ только части, которая имеет значение (AmtDue) ниже. Напоминание о поступивших данных было в формате "261,00" (например, AmtDue = 261,00):

string AmtDue = Convert.ToString(AmountDue).Replace(".", "");           
string finalstring =  ("0000000000" + AmtDue).Substring(AmtDue.Length);

Ответы на вопрос(4)

Ваш ответ на вопрос