Вопрос по ruby-on-rails-3, mysql, ruby, database, ruby-on-rails – Как сохранить процентное значение?

33

Я использую Rails 3.2.2 и хотел быstore а такжеhandle процентное значение в столбце таблицы моей базы данных. О чем вы советуетесь (например, какой тип -:integer, :float, :decimal, ... - из колонки я должен установить)? Есть ли какое-то предупреждение, которое я должен / должен знать о хранении процентных значений?

Точность должна быть2 (1.99%, 50.01%, ...).

Note: Я читаюэта почта.

Итак, после прочтения этого поста, что вам еще неясно? Sergio Tulentsev

Ваш Ответ

1   ответ
41

Это немного зависит от того, как вы планируете использовать значение, но обычноdecimal будет хорошим выбором для хранения процентов. И обратите внимание, что вы можете сохранить его как процентное значение (10.01) или как дробное (.1001). Так что это повлияет на фактический размер и точность столбца.

Выбор между хранением в процентах или долях зависит от потребностей использования, но яsuspect что в большинстве ситуаций было бы проще сохранить его в виде дроби (например, 10 для представления 10%), поскольку его легче использовать непосредственно в большинстве вычислений (не нужно не забывать делить на 100).

И, как отмечает @ismaelga в комментариях, десятичная дробь - это хороший выбор для точности (особенно приятно при работе с денежными расчетами).

ОК, я обнаружил, что:api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/… Backo
Согласен, десятичная дробь - это хорошо, так как он имеет в виду особую точность.
Так что мое заявление должно бытьadd_column :worker, :percentage, :decimal, :precision => 2? Где я могу найти больше информации об указании десятичных значений? Backo
@ismaelga: Очень хорошая мысль. Я добавил эту информацию. Благодарю.
Я хотел бы добавить в этом вопросе, что десятичная дробь хороша, поэтому есть точность и нет необходимости в преобразованиях с плавающей запятой в десятичную.

Похожие вопросы