Module | ActionView::Helpers::NumberHelper
In: | lib/action_view/helpers/number_helper.rb

Provides methods for converting a numbers into formatted strings. Methods are provided for phone numbers, currency, percentage, precision, positional notation, and file size.

### Methods

human_size number_to_currency number_to_human_size number_to_percentage number_to_phone number_with_delimiter number_with_precision

### Public Instance methods

human_size(size, precision=1)

Alias for number_to_human_size

number_to_currency(number, options = {})

Formats a `number` into a currency string. You can customize the format in the `options` hash.

- `:precision` - Sets the level of precision, defaults to 2
- `:unit` - Sets the denomination of the currency, defaults to "$"
- `:separator` - Sets the separator between the units, defaults to "."
- `:delimiter` - Sets the thousands delimiter, defaults to ","

     number_to_currency(1234567890.50)     => $1,234,567,890.50
     number_to_currency(1234567890.506)    => $1,234,567,890.51
     number_to_currency(1234567890.506, :precision => 3)    => $1,234,567,890.506
     number_to_currency(1234567890.50, :unit => "&pound;", :separator => ",", :delimiter => "")
        => &pound;1234567890,50

number_to_human_size(size, precision=1)

Formats the bytes in `size` into a more understandable representation. Useful for reporting file sizes to users. This method returns nil if `size` cannot be converted into a number. You can change the default precision of 1 in `precision`.

     number_to_human_size(123)           => 123 Bytes
     number_to_human_size(1234)          => 1.2 KB
     number_to_human_size(12345)         => 12.1 KB
     number_to_human_size(1234567)       => 1.2 MB
     number_to_human_size(1234567890)    => 1.1 GB
     number_to_human_size(1234567890123) => 1.1 TB
     number_to_human_size(1234567, 2)    => 1.18 MB

number_to_percentage(number, options = {})

Formats a `number` as a percentage string. You can customize the format in the `options` hash.

- `:precision` - Sets the level of precision, defaults to 3
- `:separator` - Sets the separator between the units, defaults to "."

     number_to_percentage(100)    => 100.000%
     number_to_percentage(100, {:precision => 0})   => 100%
     number_to_percentage(302.0574, {:precision => 2})   => 302.06%

number_to_phone(number, options = {})

Formats a `number` into a US phone number. You can customize the format in the `options` hash.

- `:area_code` - Adds parentheses around the area code.
- `:delimiter` - Specifies the delimiter to use, defaults to "-".
- `:extension` - Specifies an extension to add to the end of the generated number
- `:country_code` - Sets the country code for the phone number.

     number_to_phone(1235551234)   => 123-555-1234
     number_to_phone(1235551234, :area_code => true)   => (123) 555-1234
     number_to_phone(1235551234, :delimiter => " ")    => 123 555 1234
     number_to_phone(1235551234, :area_code => true, :extension => 555)  => (123) 555-1234 x 555
     number_to_phone(1235551234, :country_code => 1)

number_with_delimiter(number, delimiter=",", separator=".")

Formats a `number` with grouped thousands using `delimiter`. You can customize the format using optional delimiter and separator parameters.

- `delimiter` - Sets the thousands delimiter, defaults to ","
- `separator` - Sets the separator between the units, defaults to "."

     number_with_delimiter(12345678)      => 12,345,678
     number_with_delimiter(12345678.05)   => 12,345,678.05
     number_with_delimiter(12345678, ".")   => 12.345.678

number_with_precision(number, precision=3)

Formats a `number` with the specified level of `precision`. The default level of precision is 3.

     number_with_precision(111.2345)    => 111.235
     number_with_precision(111.2345, 2) => 111.24

[Validate]