Quais são os intervalos reais de vírgula flutuante e tipos de dados duplos em C#?
eu movi-me através dos inteiros e estou agora para flutuar e dobrar tipos de dados.
- 8 bits (1 byte), sbyte, -128 a 127.
- 8 bits (1 byte), byte, 0 a 255.
- 16 bits (2 bytes), curto, -32.768 a 32.767.
- 16 bits (2 bytes), ushort, 0 a 65535.
- 32 bits (4 bytes), int, -2,147,483,648 a 2,147,483,647.
- 32 bits (4 bytes), uint, 0 a 4,294,967,295.
- 64 bits( 8 bytes), longos, -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
- 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
Duplo: http://msdn.microsoft.com/en-us/library/678hzkk9.aspx
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?
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.
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.