2010-09-08 8 views
17

Existe-t-il une méthode disponible pour calculer le pourcentage en rails ou en rubis?Calculer le pourcentage en rubis?

EDIT:

Je cherche une fonction comme ..

100000.percent(10) va me retourner 10000.

100000 est la valeur .. (valeur est BigDecimal) 10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

Que voulez-vous dire par «calculer le pourcentage»? Vous pouvez utiliser la multiplication et la division comme n'importe quelle autre langue: */ –

+0

Existe-t-il une méthode disponible pour cela? –

+0

Il n'y a pas de méthode intégrée, car l'opérateur de division est généralement utilisé pour cela. Pourquoi avez-vous besoin d'une méthode par rapport à la division normale? Si vous devez * avoir * une méthode, écrivez-en une qui enveloppe un opérateur de division simple (voir plusieurs exemples ci-dessous). – bta

Répondre

72

Vous voulez dire comme ça percentage = a/b*100?

Mise à jour en fonction de votre nouvelle description:

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 (%) 

Basé sur le code de Mladen.

+0

@randomguy Mais existe-t-il une méthode disponible pour cela? –

+0

@krunal non il n'y en a pas. – Hugo

+40

vous pouvez utiliser la méthode ': /': 'a.to_f.send (: /, b) .send (: *, 100)' de plus, cette question me fait sentir ': /' –

2

Il existe une méthode. Le voici:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

je veux une méthode quelque chose comme .. 100000.percent (10) me retournera 10000. –

+5

@krunal Alors vous voulez '100000 * .1'. Vous ne voulez pas de méthode. – meagar

+0

@Mladen ma réponse préférée jamais SO :) – rmcsharry

Questions connexes