Что такое десятичное не может сделать, но двойное может и наоборот? - PullRequest
2 голосов
/ 18 марта 2012

Может кто-нибудь сказать, что десятичная переменная не может делать, но в то же время может делать double?

Кроме того, что может делать двойная буква, кроме десятичной?

У меня были проблемы с нахождением мощности (sqroot 5) до более чем 2000000

например (3 + root (5)) повышение до 300000 ... вот что можно использовать при использованиибиномиальное расширение?

Можно ли использовать двойное / десятичное число?В чем главное отличие?

Примечание. Я хочу сохранить последние 3 знака после запятой в ответе с точностью до 100%.

Ответы [ 3 ]

9 голосов
/ 18 марта 2012

Вкратце:

  • Decimal - это десятичный тип с плавающей запятой, поэтому он может представлять точные десятичные значения, например, 0,1. Он имеет довольно высокую точность, но относительно ограниченный диапазон . Это реализовано в программном обеспечении, поэтому относительно медленно.
  • Single / Double являются двоичными типами с плавающей запятой, поэтому они могут представлять только те числа, которые могут быть точно представлены в двоичном формате - что например, не включает десятичное значение 0.1. Они имеют относительно низкую точность, но большой диапазон. Обычно это реализовано аппаратно, поэтому очень быстро.

Дополнительно float / double имеют представления для положительной и отрицательной бесконечности, а "не число" - decimal не имеет ничего из этого.

См. Мои статьи о двоичной с плавающей запятой и десятичной с плавающей запятой для получения дополнительной информации.

2 голосов
/ 18 марта 2012
decimal.MaxValue = 79,228,162,514,264,337,593,543,950,335

double.MaxValue = 1.7976931348623157E+308

(5.24) ^ 300000 = ???

Я не думаю, что вы можете легко поднять 5 до 300000 без использования математической библиотеки, которая более умна, чем двойная ....

0 голосов
/ 18 марта 2012

десятичная дробь - это основание 10, что означает, что он может представлять 0,1 как 0,1

, двойное - это двоичное основание 2 - что означает, что он не может.(его бесконечные числа 0,1)

double может хранить намного большие числа, чем десятичное число

десятичное число более точно.,

...