From: Josh Cheek Date: 2010-09-07T18:41:48+09:00 Subject: Re: Round to two decimal place --001485f8d0f6fd4a91048fa82f6e Content-Type: text/plain; charset=ISO-8859-1 On Tue, Sep 7, 2010 at 3:16 AM, Tom Mac 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 --001485f8d0f6fd4a91048fa82f6e--