Когда я должен использовать двойной вместо десятичного? - PullRequest
252 голосов
/ 29 апреля 2009

Я могу назвать три преимущества использования double (или float) вместо decimal:

  1. Использует меньше памяти.
  2. Быстрее, потому что математические операции с плавающей запятой изначально поддерживаются процессорами.
  3. Может представлять больший диапазон чисел.

Но эти преимущества, по-видимому, применимы только к интенсивным вычислениям, таким как те, которые встречаются в программном обеспечении для моделирования. Конечно, двойные значения не следует использовать, когда требуется точность, например финансовые расчеты. Так есть ли практические причины когда-либо выбирать double (или float) вместо decimal в "обычных" приложениях?

Отредактировано, чтобы добавить: Спасибо за все замечательные ответы, я учился у них.

Еще один вопрос: несколько человек отметили, что двойные числа могут более точно представлять реальные числа. Когда объявят, я подумаю, что они, как правило, более точно их представляют. Но верно ли это, что точность может уменьшаться (иногда значительно) при выполнении операций с плавающей запятой?

Ответы [ 12 ]

0 голосов
/ 29 апреля 2009

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

Ваше заявление нуждается в быстром расчете или у него будет все время в мире, чтобы дать вам ответ? Это действительно зависит от типа приложения.

Графика голодна? достаточно float или double. Анализ финансовых данных, метеориты, ударяющие планету, в точности? Те должны были бы немного точности:)

0 голосов
/ 29 апреля 2009

Используйте числа с плавающей запятой, если вы цените производительность выше правильности.

...