Try a format string: "0.0#"
decimal d;
d = 29.36M;
Console.WriteLine("{0}:{0:0.0#}", d);
d = 29.00M;
Console.WriteLine("{0}:{0:0.0#}", d);
d = 20.00M;
Console.WriteLine("{0}:{0:0.0#}", d);
d = 29.50M;
Console.WriteLine("{0}:{0:0.0#}", d);
Gives:
29.36:29.36
29.00:29.0
20.00:20.0
29.50:29.5