class Numeric ## # Format a number as human readable currency. # # === Examples # # 10.format_currency => '10' # 10.99.format_currency => '10.99' # 10.9999.format_currency => '10.99' # 1000.99.format_currency => '1,000.99' # 1000000.99.format_currency => '1,000,000.99' # def format_currency parts = self.to_s.split '.' parts[0].gsub! /(\d)(?=(\d\d\d)+(?!\d))/, '\1,' parts.join('.').gsub /(\.\d{2})(\d+)/, '\1' rescue self.to_s end end