2008-10-01 1 views

ответ

16

decimal

Вы не будете терять точность из-за округления.

+0

Поймав этот вопрос позже, я нашел этот ответ более полезным 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

1

Это зависит от того, насколько вы точны. Если вам не нужны десятичные разряды, вы можете даже использовать крошечный int. Но в целом плавать хорошо, если вам нужны десятичные разряды. Я использую LLBLGen и плавает для%

-2

Это зависит от того, для чего вы их используете.

Если это для отображения, int будет делать все отлично и быть быстрее, чем поплавок. Если это для нечастой математики, int все равно будет хорошо (или даже короткий, в любом случае).

Если вы делаете много математики, то поплавок, вероятно, будет лучшим, с точки зрения производительности.

Конечно, если вы не делаете много манипуляций с процентами, в конце концов, это не имеет особого значения, с учетом производительности, учитывая современную скорость процессора.

EDIT: Конечно, 'int' предполагает, что вы используете только строгие, целые числа процентов. Если вы этого не сделаете, вы ВСЕГДА будете лучше с поплавком или dec.

+0

Вопрос не спрашивал о int vs float ... Вы также говорите, что ints быстрее, но затем также говорят, что поплавки лучше для производительности. – 2012-10-12 15:42:47

+0

@StuartBranham: И если вы заметили, я дал ситуации, в которых оба они верны. И процент может быть сохранен как int (75, т.е. 75%), либо float (.75, представляющий 75%, или 75,5, что означает 75,5% или 0,755, что означает 75,5%). Для простого хранения и отображения int быстрее. Если вам нужно работать с числами, лучше всего поплавок - вы можете хранить десятичные знаки, и есть встроенные математические функции, которые делают его очень эффективным. – Jeff 2012-10-13 14:56:16

1

Что касается SQL Server, то редко бывает, что я бы сохранил процент. В 9 раз из 10 вы хотите сохранить данные, которые используются для получения процента и расчета по мере необходимости.

Если и только если у вас есть эмпирические данные, показывающие, что расчет слишком медленный, тогда идите в магазин. Используйте десятичную дробь, как ранее предлагалось, чтобы избежать проблем округления.

2

Это во многом зависит от того, насколько вам необходима точность; Самое главное - быть последовательным и ясным. Соблюдайте меры предосторожности, чтобы убедиться, что вы совместимы в полевых условиях .. т. Е. Не храните его как float (n = .5), а затем попытайтесь восстановить его, как если бы оно было целым числом в другой части вашего кода (mypercentage = п/100). Пока вы не делаете этого, и вы не создаете лазер, который требует 30 значащих цифр точности, просто выберите свой любимый аромат между int, double или любым другим. float s ваша лодка. Вака Вака.

3

Ответ зависит от приложения.

Другие указали, что десятичное значение лучше, чем float для представления точного значения. Но иногда лучше использовать float для повышения точности (например, набор рассчитанных весов, которые составляют до 100%, вероятно, лучше представлен как float)

Смежные вопросы