2014-10-19 17 views
11

Có cách nào để in một số thập phân dưới dạng phần trăm, vì vậy chỉ có hai chữ số sau dấu chấm?Đường ray: Cách in một số thập phân dưới dạng phần trăm?

Số thập phân của tôi sẽ luôn nằm trong khoảng từ 1 đến 0, vì vậy tôi cho rằng số thập phân của tôi sẽ hoạt động để gọi number.round(2) bắt đầu bằng ký tự thứ ba, nhưng tôi không thể tìm thấy cú pháp cho bất kỳ đâu.

Để làm rõ, tôi muốn số được lưu trữ dưới dạng toàn bộ số thập phân, nhưng được in dưới dạng tỷ lệ.

Trả lời

17

Có thể bạn sẽ muốn sử dụng phương thức number_to_percentage. Dưới đây là một số ví dụ về cách sử dụng nó.

number_to_percentage(100)          # => 100.000% 
number_to_percentage("98")          # => 98.000% 
number_to_percentage(100, precision: 0)       # => 100% 
number_to_percentage(1000, delimiter: '.', separator: ',')  # => 1.000,000% 
number_to_percentage(302.24398923423, precision: 5)    # => 302.24399% 
number_to_percentage(1000, locale: :fr)       # => 1 000,000% 
number_to_percentage("98a")          # => 98a% 
number_to_percentage(100, format: "%n %")      # => 100 % 

Options:

:locale - Sets the locale to be used for formatting (defaults to current locale). 

:precision - Sets the precision of the number (defaults to 3). 

:significant - If true, precision will be the # of significant_digits. If false, the # of fractional digits (defaults to false). 

:separator - Sets the separator between the fractional and integer digits (defaults to “.”). 

:delimiter - Sets the thousands delimiter (defaults to “”). 

:strip_insignificant_zeros - If true removes insignificant zeros after the decimal separator (defaults to false). 

:format - Specifies the format of the percentage string The number field is %n (defaults to “%n%”). 

Hoặc bạn có thể viết một số ruby ​​như sau:

class Numeric 
    def percent_of(n) 
    self.to_f/n.to_f * 100.0 
    end 
end 

p (1).percent_of(10) # => 10.0 (%) 
p (200).percent_of(100) # => 200.0 (%) 
p (0.5).percent_of(20) # => 2.5 (%) 
+4

Tôi chỉ tò mò, nếu bạn đang đi để sao chép và dán tất cả mọi thứ từ các tài liệu hướng đường ray tại sao không chỉ cung cấp một liên kết đến nó? hoặc là cách ưa thích này để trả lời các câu hỏi trên Stackoverflow? – Alireza

+9

@Ali Thực ra, đây là cách tốt nhất để làm điều này. Trong khi câu trả lời này thực sự nên thuộc tính tài liệu Rails với một liên kết, cung cấp chỉ đơn thuần là một liên kết không phải là thực hành tốt nhất cho StackOverflow. Liên kết có thể bị hỏng theo thời gian hoặc tài liệu có thể thay đổi khiến câu trả lời ít hữu ích hơn. Vì vậy, có, nó sẽ được tốt đẹp nếu có một liên kết được cung cấp nhưng câu trả lời này là tốt hơn so với chỉ là một liên kết đến tài liệu hướng dẫn. –

+2

Đối với người lười biếng, bạn sẽ cần 'include ActionView :: Helpers :: NumberHelper' – Warpling

4

Bạn có thể sử dụng number_to_percentage helper để in số như tỷ lệ phần trăm theo quan điểm của bạn. nếu số của bạn là giữa 0 và 1 sau đó bạn có thể đạt được điều đó với:

number_to_percentage(@number * 100, precision: 0) 

thấy documentation

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