(int)1.IntegerTrail(); //returns "1st"
(int)2.IntegerTrail(); //returns "2nd"
(int)12.IntegerTrail(); //returns "12th"
(int)111.IntegerTrail(); //returns "111th"
swap out the integer for a double or float or generic type and it should still work. That said, I haven't tried it myself though