From: Eugen Ciur Date: 2010-09-07T20:24:33+09:00 Subject: Re: Round to two decimal place Tom, because you are dealing with prices, you might be interested in this money gem
http://github.com/RubyMoney/money

Examples of  usage in your context
>> Money.us_dollar(0).format
=> "$0.00"
>> Money.us_dollar(40.345).format
=> "$0.40"
>>

#Eugen



On 09/07/2010 12:41 PM, Josh Cheek wrote:
On Tue, Sep 7, 2010 at 3:16 AM, Tom Mac <to.tom.mak@gmail.com> wrote:

  
Hi
  I have a variable  say  @price. It is either blank or has a value. If
it is blank I have to show it like  $ 0.00  . So I wrote helper like

@price.blank? ? '$'+'0.00' : '$'+@price.to_s


    But the problem if @price has value 400.00  , after doing
@price.to_s  it changes to 400.0  What I want is exactly  400.00 .And if
I remove to_s above it will throw an error
can't convert BigDecimal into String

   Please help
Thanks
Tom
--
Posted via http://www.ruby-forum.com/.


    
Based on your use of the word "helper" I assume you're using Rails (this is
not a Rails forum), if that is so, try
http://api.rubyonrails.org/classes/ActionView/Helpers/NumberHelper.html#method-i-number_to_currency



Otherwise, check out sprintf

require 'bigdecimal'
@price = BigDecimal.new "400.00"
sprintf( "$%.02f" , @price ) # => "$400.00"

For more details on how to create a format string, the docs for sprintf are
pretty good http://ruby-doc.org/ruby-1.9/classes/Kernel.html#M002627