Helpers to render (money) amounts

Updated . Posted . Visible to the public.

When rendering a number, you want to pretty up the string coming from #to_s:

  • Render 0.0 as 0
  • Sometimes require a minimum number of digits after the decimal separator
  • Change the decimal separator from . to , in some European countries
  • Render a dash if the given amount is nil

The attached helper that does just that. Some usage examples with their resulting strings:

Invocation Result
amount(0) 0
amount(0.0) 0
amount(0.5) 0,5
amount(1.5, :minimum_precision => 2) 1,50
amount(1.543, :minimum_precision => 2) 1,543
amount(1.5, :minimum_precision => 2, :separator => '.') 1.50
amount(nil)

Rendering money amounts

If your amounts are Western hemisphere money amounts, you want some additional prettifications on top of that:

  • Always use a minimum precision of 2
  • Render a currency symbol after the string

A second helper method in the attached file does just that. Some usage examples with their resulting strings:

Invocation Result
money_amount(0) 0,00 €
money_amount(0.0) 0,00 €
money_amount(0.5) 0,50 €
money_amount(1.543) 1,543 €
money_amount(0.5, :unit => '₣') 0,50 ₣
money_amount(nil)
Profile picture of Henning Koch
Henning Koch
Last edit
Dominik Schöler
License
Source code in this card is licensed under the MIT License.
Posted by Henning Koch to makandra dev (2011-06-16 09:30)