I\'ve just learned that a decimal somehow remembers how much trailaing zero\'s were needed to store a number. With other words: it remembers the size of the fraction.
<just apply the Format specifier zero and will remove the trailing zeros:
string test = (1.23M * 100M).ToString("0");
//prints 123.
string test2 = 123.450M.ToString(".00");
//prints 123.45.
string test3 = 123.450M.ToString().Trim('0');
There are several ways to do it, but since you are converting to a String object anyway, I suppose you could try something like this:
myDecimalVariable.ToString("G29");
or, using your code above, assuming 123.00M
is your decimal:
123.00M.ToString("G29");
Here is the explanation of how that concise example works:
The G format with a number means to format that many significant digits. Because 29 is the most significant digits that a Decimal can have, this will effectively truncate the trailing zeros without rounding.
The method below (