number_to_currency
 
  number_to_currency(number, options = {})
  public
  Formats a number into a currency string (e.g., $13.65). You can customize the format in the options hash.
The currency unit and number formatting of the current locale will be used unless otherwise specified in the provided options. No currency conversion is performed. If the user is given a way to change their locale, they will also be able to change the relative value of the currency displayed with this helper. If your application will ever support multiple locales, you may want to specify a constant :locale option or consider using a library capable of currency conversion.
Options
- 
:locale - Sets the locale to be used for formatting (defaults to current locale). 
- 
: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 “,”). 
- 
:format - Sets the format for non-negative numbers (defaults to “%u%n”). Fields are %u for the currency, and %n for the number. 
- 
:negative_format - Sets the format for negative numbers (defaults to prepending a hyphen to the formatted number given by :format). Accepts the same fields than :format, except %n is here the absolute value of the number. 
- 
:raise - If true, raises InvalidNumberError when the argument is invalid. 
- 
:strip_insignificant_zeros - If true removes insignificant zeros after the decimal separator (defaults to false). 
Examples
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.506, locale: :fr) # => 1 234 567 890,51 ⬠number_to_currency("123a456") # => $123a456 number_to_currency("123a456", raise: true) # => InvalidNumberError number_to_currency(-0.456789, precision: 0) # => "$0" number_to_currency(-1234567890.50, negative_format: "(%u%n)") # => ($1,234,567,890.50) number_to_currency(1234567890.50, unit: "R$", separator: ",", delimiter: "") # => R$1234567890,50 number_to_currency(1234567890.50, unit: "R$", separator: ",", delimiter: "", format: "%n %u") # => 1234567890,50 R$ number_to_currency(1234567890.50, strip_insignificant_zeros: true) # => "$1,234,567,890.5"
 neves -  
    August 29, 2008
 neves -  
    August 29, 2008 
    
  Brazilian Real (R$ 1.200,95)
helper:
def number_to_currency_br(number) number_to_currency(number, :unit => "R$ ", :separator => ",", :delimiter => ".") end
 grosser -  
    October 20, 2008
 grosser -  
    October 20, 2008 
    
  number_to_euro
in small cells:
12 € --> 12 € def number_to_euro(amount) number_to_currency(amount,:unit=>'€').gsub(' ',nbsp) end
 georges -  
    January 15, 2010
 georges -  
    January 15, 2010 
    
  Use this in controllers
Sometimes you’re gonna need this in controllers. Just put this in the controller:
include ActionView::Helpers::NumberHelper
 stevo -  
    October  4, 2011
 stevo -  
    October  4, 2011 
    
  How to change format automatically depending on locale...
… without passing locale option.
In your application_helper.rb (or in other helper) place following code:
def number_to_currency(number, options = {}) options[:locale] ||= I18n.locale super(number, options) end
Then, in your locale files:
en-GB: number: currency: format: format: "%n %u" unit: "USD"
And that is it :)
 nishat -  
    November 19, 2014
 nishat -  
    November 19, 2014 
    
  Bangladeshi Taka (BDT 1,200.95)
Code example
def to_bdt(amount) number_to_currency(amount, :unit => "BDT ", :separator => ".", :delimiter => ",") end
 stevo -  
    October 24, 2012
 stevo -  
    October 24, 2012 
    
  If you happen to face some weird rounding issue...
i.e.
helper.number_to_currency(187) => "190 kr"
check out your… translations! Especially ‘significant’ key… In my case it was
number: currency: format: significant: 'false'
that broke rounding. It should have been
number: currency: format: significant: ! 'false'
And now it works perfectly
helper.number_to_currency(187) => "187 kr"

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
    
 
   
   
   
   = protected
 = protected
   
    