module ActionView::Helpers::NumberHelper

def number_with_delimiter(number, options = {})

# => 98 765 432,98
number_with_delimiter(98765432.98, :delimiter => " ", :separator => ",")
number_with_delimiter(12345678.05, :locale => :fr) # => 12 345 678,05
number_with_delimiter(12345678, :separator => ",") # => 12,345,678
number_with_delimiter(12345678, :delimiter => ".") # => 12.345.678
number_with_delimiter(12345678.05) # => 12,345,678.05
number_with_delimiter(12345678) # => 12,345,678
==== Examples

* :separator - Sets the separator between the fractional and integer digits (defaults to ".").
* :delimiter - Sets the thousands delimiter (defaults to ",").
* :locale - Sets the locale to be used for formatting (defaults to current locale).
==== Options

customize the format in the +options+ hash.
Formats a +number+ with grouped thousands using +delimiter+ (e.g., 12,324). You can
def number_with_delimiter(number, options = {})
  options.symbolize_keys!
  begin
    Float(number)
  rescue ArgumentError, TypeError
    if options[:raise]
      raise InvalidNumberError, number
    else
      return number
    end
  end
  defaults = I18n.translate(:'number.format', :locale => options[:locale], :default => {})
  options = options.reverse_merge(defaults)
  parts = number.to_s.split('.')
  parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{options[:delimiter]}")
  parts.join(options[:separator]).html_safe
end