2010-09-08 25 views
17

Gibt es irgendeine Methode, um Prozentsatz in den Schienen oder im Rubin zu berechnen?Prozentsatz in Rubin berechnen?

EDIT:

Ich bin auf der Suche nach einer Funktion wie ..

100000.percent(10) kehrt mich 10000.

100000 ist Wert .. (Wert BigDecimal) 10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

Was meinst du, "prozentual berechnen"? Sie können Multiplikation und Division wie jede andere Sprache verwenden: */ –

+0

Gibt es eine Methode dafür? –

+0

Es gibt keine eingebaute Methode, da normalerweise der Division-Operator verwendet wird. Warum brauchen Sie eine Methode über die normale Teilung? Wenn Sie * eine Methode haben müssen, schreiben Sie eine, die einen einfachen Divisionsoperator umschließt (siehe einige Beispiele unten). – bta

Antwort

72

bedeuten Sie mögen dieses percentage = a/b*100?

aktualisieren basierend auf dem neuen Beschreibung:

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

Basierend auf Code Mladen ist.

+0

@randomguy Aber gibt es irgendeine Methode dafür? –

+0

@krunal nein es gibt keine. – Hugo

+40

können Sie die ': /' Methode verwenden: 'a.to_f.send (: /, b) .send (: *, 100)' außerdem, diese Frage macht mich fühlen ': /' –

2

Es gibt eine Methode. Hier ist es:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

Ich möchte eine Methode etwas wie .. 100000.percent (10) wird mir 10000 zurückgeben. –

+5

@krunal Dann wollen Sie '100000 * .1'. Sie wollen keine Methode. – meagar

+0

@Mladen meine Lieblingsantwort auf SO :) – rmcsharry

Verwandte Themen