Using the 2nd solution that will more than likely resolve your issue. I can't remember exactly but I'm not sure the ToString() method will work.
You need to provide some kind of formatting for the decimal value.
Instead of:
.ToString("0.00");
Do this:
.ToString("{0: 0.##}", 123.45);
.ToString("{0: 0.##}", 123.4);
.ToString("{0: 0.##}", 123.0);