Analogy Analogy wrote: > Sorry about that, true they are strings > > ["1.80%", "14.50%", "ruby", "3.10%"] > > I want to truncate the "numbers" to one decimal place and still keep the > percent symbol (i.e. 1.80% >> 1.8%). However, I don't want to change any > letter/words (i.e. ruby) at all. ["1.80%", "14.50%", "ruby", "3.10%"].map do |string| string.gsub(/\d+(\.\d+)?/) {|match| "%.1f" % match} end PS: Before this post I thought you only wanted to get rid of trailing zeros (i.e. "1.80%" becomes "1.8%", but "1.82%" stays the same), you could have done that as follows: ["1.80%", "14.50%", "ruby", "3.10%"].map do |string| string.gsub(/\d+(\.\d+)?/) {|match| match.to_f.to_s} end HTH, Sebastian -- NP: My Dying Bride - A Doomed Lover Jabber: sepp2k / jabber.org ICQ: 205544826