2010-09-08 138 views
17

是否有任何方法可用來計算rails或ruby中的百分比?計算紅寶石中的百分比?

編輯:

我要尋找一個功能如..

100000.percent(10)將返回我10000

100000是價值..(價值BigDecimal10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

你是什麼意思,「計算百分比」?您可以像使用其他語言一樣使用乘法和除法:*/ – 2010-09-08 13:48:58

+0

是否有任何方法可用於此? – 2010-09-08 14:20:23

+0

沒有內建方法,因爲除法運算符通常用於此目的。爲什麼你需要一種超過正常分割的方法?如果你必須*有一個方法,寫一個包裝一個簡單的除法運算符(見下面的幾個例子)。 – bta 2010-09-08 18:23:05

回答

72

你是說像這樣percentage = a/b*100

更新根據你新的描述:

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

基於姆拉登的代碼。

+0

@randomguy但是有沒有任何方法可用於此? – 2010-09-08 14:19:54

+0

@ krunal no沒有。 – Hugo 2010-09-08 14:53:26

+40

你可以使用':/'方法:'a.to_f.send(:/,b).send(:*,100)'此外,這個問題讓我覺得':/' – 2010-09-08 14:57:51

2

有一種方法。這裏是:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

我想要一個類似於.. 100000.percent(10)的方法會返回我10000. – 2010-09-08 16:01:26

+5

@krunal然後你想'100000 * .1'。你不想要一個方法。 – meagar 2010-09-08 19:33:52

+0

@Maraden我最喜歡的答案就是這樣:) – rmcsharry 2015-08-08 14:27:25