Я думаю, что плавает. Для записи я также использую NHibernate.Какие типы я должен использовать для представления процентов в C# и SQL Server?
ответ
decimal
Вы не будете терять точность из-за округления.
Это зависит от того, насколько вы точны. Если вам не нужны десятичные разряды, вы можете даже использовать крошечный int. Но в целом плавать хорошо, если вам нужны десятичные разряды. Я использую LLBLGen и плавает для%
Это зависит от того, для чего вы их используете.
Если это для отображения, int будет делать все отлично и быть быстрее, чем поплавок. Если это для нечастой математики, int все равно будет хорошо (или даже короткий, в любом случае).
Если вы делаете много математики, то поплавок, вероятно, будет лучшим, с точки зрения производительности.
Конечно, если вы не делаете много манипуляций с процентами, в конце концов, это не имеет особого значения, с учетом производительности, учитывая современную скорость процессора.
EDIT: Конечно, 'int' предполагает, что вы используете только строгие, целые числа процентов. Если вы этого не сделаете, вы ВСЕГДА будете лучше с поплавком или dec.
Вопрос не спрашивал о int vs float ... Вы также говорите, что ints быстрее, но затем также говорят, что поплавки лучше для производительности. – 2012-10-12 15:42:47
@StuartBranham: И если вы заметили, я дал ситуации, в которых оба они верны. И процент может быть сохранен как int (75, т.е. 75%), либо float (.75, представляющий 75%, или 75,5, что означает 75,5% или 0,755, что означает 75,5%). Для простого хранения и отображения int быстрее. Если вам нужно работать с числами, лучше всего поплавок - вы можете хранить десятичные знаки, и есть встроенные математические функции, которые делают его очень эффективным. – Jeff 2012-10-13 14:56:16
Что касается SQL Server, то редко бывает, что я бы сохранил процент. В 9 раз из 10 вы хотите сохранить данные, которые используются для получения процента и расчета по мере необходимости.
Если и только если у вас есть эмпирические данные, показывающие, что расчет слишком медленный, тогда идите в магазин. Используйте десятичную дробь, как ранее предлагалось, чтобы избежать проблем округления.
Это во многом зависит от того, насколько вам необходима точность; Самое главное - быть последовательным и ясным. Соблюдайте меры предосторожности, чтобы убедиться, что вы совместимы в полевых условиях .. т. Е. Не храните его как float (n = .5), а затем попытайтесь восстановить его, как если бы оно было целым числом в другой части вашего кода (mypercentage = п/100). Пока вы не делаете этого, и вы не создаете лазер, который требует 30 значащих цифр точности, просто выберите свой любимый аромат между int, double или любым другим. float s ваша лодка. Вака Вака.
Ответ зависит от приложения.
Другие указали, что десятичное значение лучше, чем float для представления точного значения. Но иногда лучше использовать float для повышения точности (например, набор рассчитанных весов, которые составляют до 100%, вероятно, лучше представлен как float)
- 1. Какие типы агрегатов я могу использовать для создания индексированного представления
- 2. Запрос SQL Server для процентов
- 3. Типы данных SQL Server 2008: какие из них я должен использовать?
- 4. Какие типы переменных я не должен использовать в коде iPhone?
- 5. Какие разрешения должен предоставлять пользователь SQL Server для LinqToSql?
- 6. Когда использовать какие типы
- 7. Почему я должен использовать C++/CLI типы instad C++ Native?
- 8. Какие типы использовать для бокса в генераторах
- 9. Какие типы данных следует использовать для следующего требования в C#
- 10. Code-Signing: какие типы файлов я должен подписывать и почему?
- 11. Должен ли я снова использовать примитивные типы?
- 12. Какие типы переменных следует использовать?
- 13. Когда я должен использовать C++ вместо SQL?
- 14. SQL Server индексированные представления
- 15. Какие типы размеров я могу использовать для определенной семантики
- 16. Какие типы данных использовать с CoreData/SQL для минимизации конверсий
- 17. Оптимизация представления SQL Server
- 18. Какие типы данных SQL Server сопоставляются по умолчанию в ADO.NET?
- 19. Типы несоответствия, должен ли я использовать liftIO?
- 20. Char и типы строк, что я должен использовать?
- 21. Типы преобразования SQL Server
- 22. Какие плагины Rails я должен использовать?
- 23. Восстановление CSS, какие инструменты я должен использовать
- 24. Java-шифрование: какие алгоритмы я должен использовать?
- 25. Типы разрешений SQL Server
- 26. Какие EntitySetRights Перечисление я должен использовать
- 27. Создания Представления в SQL Server
- 28. Какие регулярные выражения я должен использовать?
- 29. Какие изображения я должен использовать для своего приложения для Android.
- 30. Почему я должен использовать общие представления?
Поймав этот вопрос позже, я нашел этот ответ более полезным WRT Часть SQL Server вопроса: http://stackoverflow.com/questions/158966/what-types-should-i-use-to-represent-percentages-in-c-and-sql-server/159780#159780. Казалось бы, ответ десятичен как тип CLR и float для типа SQL Server, по крайней мере, если вы, вероятно, сохраните дробные проценты. – 2009-08-07 23:05:35