instance method number_with_delimiter

Ruby on Rails 3.2.22.5

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

number_with_delimiter(number, options = {})

Formats a number with grouped thousands using delimiter (e.g., 12,324). You can customize the format in the options hash.

Options

  • :locale - Sets the locale to be used for formatting (defaults to current locale).

  • :delimiter - Sets the thousands delimiter (defaults to “,”).

  • :separator - Sets the separator between the fractional and integer digits (defaults to “.”).

  • :raise - If true, raises InvalidNumberError when the argument is invalid.

Examples

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

number_with_delimiter("112a", :raise => true)          # => raise InvalidNumberError

Parameters

number req
options opt = {}
Source
# File actionpack/lib/action_view/helpers/number_helper.rb, line 264
      def number_with_delimiter(number, options = {})
        options.symbolize_keys!

        options[:delimiter] = ERB::Util.html_escape(options[:delimiter]) if options[:delimiter]
        options[:separator] = ERB::Util.html_escape(options[:separator]) if options[:separator]

        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.to_str.split('.')
        parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{options[:delimiter]}")
        parts.join(options[:separator]).html_safe

      end

Defined in actionpack/lib/action_view/helpers/number_helper.rb line 264 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionView::Helpers::NumberHelper

Type at least 2 characters to search.

↑↓ navigate · open · esc close