2010-09-08 144 views
17

¿Hay algún método disponible para calcular el porcentaje en rieles o rubí?Calcula el porcentaje en ruby?

EDIT:

Busco a una función como ..

100000.percent(10) me va a volver 10000.

100000 es el valor .. (el valor es BigDecimal) 10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

¿Qué quiere decir "calcular el porcentaje"? Puede usar multiplicación y división como cualquier otro idioma: */ –

+0

¿Hay algún método disponible para esto? –

+0

No hay un método integrado, porque el operador de la división se usa generalmente para esto. ¿Por qué necesitas un método sobre la división normal? Si * debe * tener un método, escriba uno que ajuste un operador de división simple (vea varios ejemplos a continuación). – bta

Respuesta

72

Te refieres a este percentage = a/b*100?

actualización basado en su nuevo Descripción:

class Numeric 
    def percent_of(n) 
    self.to_f/n.to_f * 100.0 
    end 
end 

# Note: the brackets() around number are optional 
p (1).percent_of(10) # => 10.0 (%) 
p (200).percent_of(100) # => 200.0 (%) 
p (0.5).percent_of(20) # => 2.5 (%) 

pizza_slices = 5 
eaten = 3 
p eaten.percent_of(pizza_slices) # => 60.0 (%) 

basado en el código de Mladen.

+0

@randomguy ¿Pero hay algún método disponible para esto? –

+0

@krunal no hay ninguno. – Hugo

+40

puede usar el método ': /': 'a.to_f.send (: /, b) .send (: *, 100)' además, esta pregunta me hace sentir ': /' –

2

Hay un método. Aquí está:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

quiero un método algo así como ... 100000.percent (10) me devolverá 10000. –

+5

@krunal Entonces quieres '100000 * .1'. Usted no quiere un método. – meagar

+0

@Mladen mi respuesta favorita en SO :) – rmcsharry

Cuestiones relacionadas