On 1/19/08, Neal L <neal.lober-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:>
> Hi all,
>
> I''m working on a financial app, and have set up some columns in my
> tables as decimals with precision => 8 and scale => 2. My migration
> looks like:
>
> change_column :lineitems, :price, :decimal, :precision =>
> 8, :scale => 2
> change_column :payments, :amount, :decimal, :precision =>
> 8, :scale => 2
>
> I''ve run the migration and restarted the server. I also looked at
the
> Mysql tables to verify that the migration ran correctly, and the
> fields look like they''re set up right ( DECIMAL(8,2) ).
>
> The problem is that when I access these columns in the console, they
> show up as Bigdecimal and it''s messing up my calculations.
Here''s
> what it looks like from the rails console:
>
> >> Lineitem.find(34).price
> => #<BigDecimal:31e4c74,''0.3E4'',4(12)>
> >> Payment.find(23).amount
> => #<BigDecimal:31b8480,''0.4125E4'',4(12)>
>
> What''s going on here? How do I get Rails to recognize that these
are
> decimal/currency amounts?????
BigDecimal is just the Ruby class which represents decimal fixed point numbers.
How is it "messing up your calculations?"
>> b = BigDecimal.new("100", 2)
=>
#<BigDecimal:13f4e6c,''0.1E3'',4(8)>>> b.to_s
=> "100.0">> b + 1
=>
#<BigDecimal:13f0b8c,''0.101E3'',4(12)>>> (b + 1).to_s
=> "101.0"
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---