2010-09-08 39 views
17

Có phương pháp nào để tính tỷ lệ phần trăm trong đường ray hay ruby ​​không ??Tính tỷ lệ phần trăm trong ruby?

EDIT:

Tôi đang tìm kiếm một chức năng như ..

100000.percent(10) sẽ trở lại tôi 10000.

100000 là giá trị .. (giá trị là BigDecimal) 10 % ..

result = 100000 * 10/100

result = 10000 ..

+6

Ý của bạn là gì, "tính phần trăm"? Bạn có thể sử dụng phép nhân và phép chia như bất kỳ ngôn ngữ nào khác: */ –

+0

Có phương pháp nào cho việc này không ?? –

+0

Không có phương thức dựng sẵn, vì toán tử phân chia thường được sử dụng cho việc này. Tại sao bạn cần một phương pháp trên phân chia bình thường? Nếu bạn * phải * có một phương thức, hãy viết một phương thức kết thúc tốt một toán tử phân chia đơn giản (xem một số ví dụ bên dưới). – bta

Trả lời

72

Bạn có nghĩa là giống như percentage = a/b*100 này?

Cập nhật dựa trên mô tả mới của bạ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 (%) 

Dựa trên mã Mladen của.

+0

@randomguy Nhưng có phương pháp nào có sẵn cho điều này không ?? –

+0

@krunal không có gì cả. – Hugo

+40

bạn có thể sử dụng phương thức ': /': 'a.to_f.send (: /, b) .send (: *, 100)' hơn nữa, câu hỏi này làm cho tôi cảm thấy ': /' –

2

Có một phương pháp. Dưới đây là:

class Numeric 
    def percents 
    self * 100 
    end 
end 

0.56.percents 
=> 56.0 
+0

tôi muốn một phương thức giống như .. 100000.percent (10) sẽ trả lại cho tôi 10000. –

+5

@krunal Sau đó, bạn muốn '100000 * .1'. Bạn không muốn một phương pháp. – meagar

+0

@Mladen câu trả lời yêu thích của tôi về SO :) – rmcsharry

Các vấn đề liên quan