2012-05-18 39 views
27

Tôi đang sử dụng Rails 3.2.2 và tôi muốn lưu trữxử lý giá trị phần trăm trong cột bảng cơ sở dữ liệu của tôi. Bạn khuyên gì về (ví dụ: loại nào - :integer, :float, :decimal, ... - của cột nào tôi nên đặt)? Có một số cảnh báo mà tôi phải/nên biết về việc lưu trữ các giá trị phần trăm không?Làm cách nào để lưu trữ giá trị phần trăm?

Độ chính xác phải là (1.99%, 50.01%, ...).

Lưu ý: Tôi đọc this post.

+2

Vì vậy, sau khi đọc bài đăng đó, bạn vẫn chưa rõ điều gì? –

Trả lời

32

Nó phụ thuộc một chút vào cách bạn dự định sử dụng giá trị, nhưng thường là decimal sẽ là một lựa chọn tốt để lưu trữ tỷ lệ phần trăm. Và lưu ý rằng bạn có thể lưu trữ nó dưới dạng giá trị phần trăm (10.01) hoặc dưới dạng phân số (.1001). Vì vậy, điều đó sẽ ảnh hưởng đến kích thước thực tế và độ chính xác của cột.

Lựa chọn giữa lưu trữ dưới dạng phần trăm hoặc phần phụ thuộc vào nhu cầu sử dụng, nhưng tôi nghi ngờ rằng trong hầu hết các trường hợp, sẽ đơn giản hơn để lưu trữ dưới dạng phân số (ví dụ: .10 để đại diện 10%) có thể được sử dụng trực tiếp trong hầu hết các phép tính dễ dàng hơn (không cần phải nhớ chia cho 100).

Và như @ismaelga chỉ ra trong nhận xét, số thập phân là lựa chọn tốt cho độ chính xác (đặc biệt tốt khi xử lý tính toán tiền tệ).

+1

Đồng ý, thập phân là tốt vì anh ta có một độ chính xác cụ thể trong tâm trí. –

+0

Tôi sẽ thêm vào câu hỏi này, số thập phân là tốt nên có độ chính xác và không cần chuyển đổi từ phao sang thập phân. –

+0

@ismaelga: Rất tốt. Tôi đã thêm thông tin đó. Cảm ơn. –

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