At 2009-08-14 04:04AM, "Gerald Ebberink" wrote: > On Thu, 2009-08-13 at 17:59 +0000, Glenn Jackman wrote: > > > At 2009-08-13 07:23AM, "Gerald Ebberink" wrote: > > > On Thu, 2009-08-13 at 09:37 +0000, Glenn Jackman wrote: > > > > > > > At 2009-08-13 03:54AM, "Gerald Ebberink" wrote: > > > > > require 'bigdecimal' > > > > > > > > > > var1 = 10 > > > > > var2 = 20 > > > > > ["var1","var2"].each do |v| > > > > > v = BigDecimal.new(v.to_s) > > > > > end > > > > > var1.class > > > > bigs = variable_names.collect {|v| BigDecimal.new(eval(v).to_s)} > > Maybe my question wasn't clear enough. > I would like the values of var1, var2 etc, to change from Fixnum/Float > to BigDecimal without having to resort to something like > > if variable_names.include?("var1") do > var1 = BigDecimal.new(var1.to_s) > end > if variable_names.include?("var2") do > var2 = BigDecimal.new(var2.to_s) > end > if variable_names.include?("var3") do > var3 = BigDecimal.new(var3.to_s) > end > etc etc I was hoping you'd be able to take the last steps yourself. You need to expand the eval'ed string a bit: %w{var1 var2}.each {|v| eval "#{v} = BigDecimal.new(#{v}.to_s)"} as in: irb(main):010:0> [var1, var2] => [10, 20] irb(main):011:0> %w{var1 var2}.each {|v| eval "#{v} = BigDecimal.new(#{v}.to_s)"} => ["var1", "var2"] irb(main):012:0> [var1, var2] => [#<BigDecimal:7ff74f84,'0.1E2',4(8)>, #<BigDecimal:7ff74d68,'0.2E2',4(8)>] -- Glenn Jackman Write a wise saying and your name will live forever. -- Anonymous