web-dev-qa-db-fra.com

Comment stocker une valeur en pourcentage?

J'utilise Rails 3.2.2 et je voudrais stocker et gérer une valeur en pourcentage dans une colonne de ma table de base de données. Que conseillez-vous (par exemple, de quel type - :integer, :float, :decimal, ... - de la colonne dois-je définir)? Y a-t-il une alerte que je dois/dois savoir sur le stockage des valeurs de pourcentage?

La précision doit être 2 (1.99%, 50.01%, ...).

Remarque : J'ai lu ce post .

34
Backo

Cela dépend un peu de la façon dont vous prévoyez d'utiliser la valeur, mais généralement un decimal serait un bon choix pour stocker des pourcentages. Et notez que vous pouvez le stocker en tant que valeur en pourcentage (10.01) ou fractionnaire (.1001). Cela affecterait donc la taille et la précision réelles de la colonne.

Le choix entre le stockage en pourcentage ou en fraction dépend des besoins d'utilisation, mais je suspect que dans la plupart des situations, il serait plus simple de le stocker en fraction (par exemple, .10 pour représenter 10%) parce que il peut être utilisé directement dans la plupart des calculs plus facilement (pas besoin de se rappeler de le diviser par 100).

Et comme @ismaelga le souligne dans les commentaires, une décimale est un bon choix pour la précision (en particulier Nice lorsqu'il s'agit de calculs monétaires).

43
Mark Wilkins