Quais são os intervalos reais de vírgula flutuante e tipos de dados duplos em C#?

Estou a aprender C# e a tentar obter uma representação visual lógica da Gama real de tipos de dados em C#.

eu movi-me através dos inteiros e estou agora para flutuar e dobrar tipos de dados.

  1. 8 bits (1 byte), sbyte, -128 a 127.
  2. 8 bits (1 byte), byte, 0 a 255.
  3. 16 bits (2 bytes), curto, -32.768 a 32.767.
  4. 16 bits (2 bytes), ushort, 0 a 65535.
  5. 32 bits (4 bytes), int, -2,147,483,648 a 2,147,483,647.
  6. 32 bits (4 bytes), uint, 0 a 4,294,967,295.
  7. 64 bits( 8 bytes), longos, -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
  8. 64 bits (8 bytes), ulong, 0 a 18,446,744,073,709,551,615.

Aqui estão as referências aos tamanhos flutuantes e duplos dos tipos de dados em msdn:

Float: http://msdn.microsoft.com/en-us/library/b1e65aza(v=vs 110).aspx

enter image description here

Duplo: http://msdn.microsoft.com/en-us/library/678hzkk9.aspx

enter image description here

assim, tentando manter com a Convenção de especificar o intervalo real dos números como na lista numerada acima, o que estes dois intervalos representam realmente?

Author: user1063287, 2013-07-20

2 answers

Os intervalos são representados em "formato exponencial" para a concordância. Por exemplo, +1, 7 e + 308 significa 17 seguido de 307 zeros:

1,700,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000

Então ... o formato exponencial é preferido para números tão grandes. E o mesmo vale para números extremamente pequenos.

Veja Também Esta leitura de Jon Skeet.

 6
Author: Eren Ersönmez, 2013-07-20 07:26:34

As gamas são, na verdade, infinitas até + infinitas.

O maior finito float is 340282346638528859811704183484516925440. Isto é ... 2128-2128-24.

O maior finito double é 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368. Isto é ... 21024-21024-53.

 8
Author: Eric Postpischil, 2013-07-20 10:10:31