Typ danych dziesiętnych to usuwanie zera na końcu, gdy są one potrzebne do wyświetlenia

Aplikacja internetowa, nad którą pracuję (inny programista napisał ją), ma zmienną dziesiętną, która po zrzuceniu dziesiętnym upuszcza dwa zero. Nie upuszcza końcowych 2 cyfr, jeśli zawierają liczbę> 0 lub kombinację. Wartość pochodzi z pliku tekstowego.

Przykładowa wartość tekstu to:261.00

Przykładowa zmienna dziesiętna (TotalDue) to:261

Podczas debugowania po najechaniu kursorem na „TotalDue” (w poniższym przykładowym kodzie) wartość jest wyświetlana jako 261, a gdy rozszerzam debuger, brzmi „261M”:

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

Próbowałem wprowadzić go jako ciąg znaków (ale początkowo nadal czyta jako „261” zamiast 261.00), a następnie konwertuje go na różne sposoby w następujący sposób. Nic nie działa!

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

czego mi brakuje? Czy ma znaczenie, skąd pochodzą dane pliku tekstowego? Zaczęło się w bazie danych Access.

AKTUALIZACJA: Dzisiaj (12/1/15) Zdałem sobie sprawę, że nigdy nie zaznaczyłem odpowiedzi, ponieważ skończyło się na zeskanowaniu oryginalnego kodu i przepisaniu go w C # .net. Zaznaczę poprawną odpowiedź Cole'a Campbella, ponieważ jego uwagi(„skonstruuj dziesiętny w sposób zapewniający wystarczające dane dotyczące dokładności danych wejściowych.”) co skłoniło mnie do znalezienia rozwiązania, które zrobiłem, aby manipulować przychodzącymi danymi. Zrobiłem to w metodzie - pokazując tylko część, która się liczy (AmtDue) poniżej. Przypomnienie o przychodzących danych miało format „261,00” (np. AmtDue = 261.00):

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

questionAnswers(4)

yourAnswerToTheQuestion