From: Jeffrey Schwab Date: 2006-03-01T01:53:36+09:00 Subject: Re: Formatting to "Thousands" James Edward Gray II wrote: > def commify( number ) > number.to_s.reverse.gsub!(/(\d\d\d)(?=\d)(?!\d*\.)/, '\1,').reverse > end That's nice, except that gsub! returns nil if no substitutions are performed, e.g. if the number has fewer than 4 digits. This can result in an exception like: main.rb:3:in `commify': undefined method `reverse' for nil:NilClass(NoMethodError) Of course, you could just break the chain across multiple lines: def commify(number) s = number.to_s s.reverse! s.gsub!(/(\d\d\d)(?=\d)(?!\d*\.)/, '\1,') s.reverse! end