2012-05-18 14 views
27

Utilizzo Rails 3.2.2 e desidero acquistare store e handle un valore percentuale in una colonna della mia tabella di database. Che cosa consigli (ad esempio, che tipo - :integer, :float, :decimal, ... - della colonna dovrei impostare)? C'è qualche avviso che devo/devo sapere sulla memorizzazione dei valori percentuali?Come memorizzare un valore percentuale?

La precisione deve essere (1.99%, 50.01%, ...).

Nota: Ho letto this post.

+2

Quindi, dopo aver letto quel post, cosa non ti è ancora chiaro? –

risposta

32

Dipende un po 'da come si prevede di utilizzare il valore, ma in genere un decimal sarebbe una buona scelta per la memorizzazione delle percentuali. E si noti che è possibile memorizzarlo come valore percentuale (10.01) o come frazionario (.1001). Questo influenzerebbe le dimensioni effettive e la precisione della colonna.

La scelta fra memorizzazione come percentuale o frazione dipende dalle esigenze di utilizzo, ma sospetto che nella maggior parte dei casi sarebbe più semplice memorizzare come frazione (per esempio, .10 per rappresentare 10%) perché può essere utilizzato direttamente nella maggior parte dei calcoli più facilmente (non è necessario ricordare di dividere per 100).

E come sottolinea @ismaelga nei commenti, un decimale è una buona scelta per la precisione (particolarmente piacevole quando si tratta di calcoli monetari).

+1

Concordato, decimale è buono poiché ha una precisione particolare in mente. –

+0

Vorrei aggiungere in questa domanda che il decimale è buono, quindi c'è accuratezza e non c'è bisogno di convessioni dal float al decimale. –

+0

@ismaelga: ottimo punto. Ho aggiunto quell'informazione. Grazie. –

Problemi correlati