2010-09-08 20 views
17

Esiste qualche metodo per calcolare la percentuale in rotaie o rubini ??Calcolare la percentuale in rubino?

EDIT:

Sto cercando una funzione come ..

100000.percent(10) tornerà me 10000.

100000 è il valore .. (valore è BigDecimal) 10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

Cosa intendi con "calcolare la percentuale"? È possibile utilizzare la moltiplicazione e la divisione come qualsiasi altra lingua: */ –

+0

Esiste un metodo disponibile per questo? –

+0

Non esiste un metodo incorporato, poiché l'operatore di divisione viene solitamente utilizzato per questo. Perché hai bisogno di un metodo oltre la normale divisione? Se * devi * avere un metodo, scrivine uno che avvolga un operatore di divisione semplice (vedi diversi esempi sotto). – bta

risposta

72

Vuoi dire come questo percentage = a/b*100?

Aggiornamento in base alla nuova descrizione:

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

Basato sul codice di Mladen.

+0

@randomguy Ma c'è qualche metodo disponibile per questo? –

+0

@krunal no non ce n'è. – Hugo

+40

puoi usare il metodo ': /': 'a.to_f.send (: /, b) .send (: *, 100)' inoltre, questa domanda mi fa sentire ': /' –

2

C'è un metodo. Eccolo:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

voglio un metodo qualcosa come .. 100000.percent (10) mi restituirà 10000. –

+5

@krunal Quindi vuoi '100000 * .1'. Tu non vuoi un metodo. – meagar

+0

@Mladen la mia risposta preferita sempre su SO :) – rmcsharry

Problemi correlati