# Calculate percentage in Rails/Ruby

Hi,

i have unique visitors and transactions in my database, wich are showed
through an swf-graph. This works fine.

Now i want to calculate the conversion-ratio in percentage:

visitors/transactions*100= ratio in percentage

Is there a function in ruby/rails to realize that?

Grtz…remco

On 27 Aug 2008, at 07:28, Remco S. wrote:

Is there a function in ruby/rails to realize that?

what do want more than just doing that calculation ? The
number_to_percentage helper will format it nicely if that’s what you
want.

Fred

On Wed, Aug 27, 2008 at 8:28 AM, Remco S.
[email protected] wrote:

Is there a function in ruby/rails to realize that?
I don’t know if there is a function in ruby or rails to do that, but
I’m quite sure something like

ratio = visitors / transaction * 100

will do the trick.

p.s. : learn ruby, and a little of programming worth the effort.

Gabriel L. [email protected]

I’m guessing something like this:

x = [1,2,3]
=> [1, 2, 3]
y = [5,6,7]
=> [5, 6, 7]
combined = x.zip y
=> [[1, 5], [2, 6], [3, 7]]
combined.each do |a,b|
?> puts a.to_f/b.to_f * 100
end
20.0
33.3333333333333
42.8571428571429

or once you have combined, you could easily do:

percentage = combined.map{|a,b| a.to_f/b.to_f*100}

Learn Ruby on Rails! Check out the FREE VIDS (for a limited time)
VIDEO #4 parts a and b now available!
http://sensei.zenunit.com/

Frederick C. wrote:

On 27 Aug 2008, at 07:28, Remco S. wrote:

Is there a function in ruby/rails to realize that?

what do want more than just doing that calculation ? The
number_to_percentage helper will format it nicely if that’s what you
want.

Fred

Hi,

i have 2 array’s

t.set_data([46,28,33,48,54,49,34,40,36,43,56,55,57,49,38,35,36,62,44,59,40,55,27,37,47,56])
v.set_data([2442,1754,2887,3378,2937,2595,2871,2508,1874,
2699,3203,3044,3034,2558,3565,2299,2917,3686,3167,2824,3308,2731,2034,2888,3526,
3434])

The calculation that i want to perform is

t.set_data/v.setdata * 100 = percentage

remco

Remco S. wrote:

Hi,

i have 2 array’s

t.set_data([46,28,33,48,54,49,34,40,36,43,56,55,57,49,38,35,36,62,44,59,40,55,27,37,47,56])
v.set_data([2442,1754,2887,3378,2937,2595,2871,2508,1874,
2699,3203,3044,3034,2558,3565,2299,2917,3686,3167,2824,3308,2731,2034,2888,3526,
3434])

The calculation that i want to perform is

t.set_data/v.setdata * 100 = percentage

remco

you can try:

t.each_with_index do |i,j|
percentage = i/v[j] * 100
end

if they’re combined ;D