2012-08-08 16 views
7

cuando hago esto:valor máximo para el tipo de flotador en C#

float x = float.MaxValue; 

Tengo el resultado: 3.40282347E + 38

¿Qué es E + 38? ¿cómo puedo representar el número máximo sin este símbolo?

msdn dice RANGE: ± 1.5 × 10^-45 a ± 3.4 × 10^38, pero eso no me ayudó.

+0

¿Desea representar esto en una cadena? ¿Qué quieres decir con "representar"? –

Respuesta

18

El "E + 38" formato es el valor predeterminado. Si desea ver toda la serie, especificar un formato diferente como esto:

float.MaxValue.ToString("#") 

Esto dará como resultado:

340282300000000000000000000000000000000 

Éstos son algunos formatos adicionales: http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx

+0

No hay problema. Si desea comas, use '" #, # "' o '" N "'. – Dan

+0

El "número completo" es 340282346638528859811704183484516925440. –

+0

@ Dan La mejor respuesta que he visto en preguntas como esta. ¿Puedes mostrar cómo hacer esto en C++? –

0

Es aprox . 340 000 000 000 000 000 000 000 000 000 000 000 000

Si utiliza código de Dan, obtendrá esto como resultado:

340282300000000000000000000000000000000 
7

Esto se utiliza a veces E Notation utilizar con notación científica. Significa "10 a la potencia de"

Desde el E Notation section of the Wikipedia article on Scientific Notation:

Debido exponentes, subíndices como 10^7 pueden no ser siempre mostrado convenientemente, la letra E o E se utilizan a menudo para representar veces diez elevado a la potencia de (que se escribiría como "x 10^b") y va seguido del valor del exponente.

Por lo tanto, es igual a 3.40282347E+383.40282347 * 10^38

2

Eso es Scientific Notation.

5E+2 = 
5 x 10^2 = 
5 x 10 * 10 = 
5 * 100 = 
500 

En otras palabras, esa es la cantidad de decimales que mueve el punto decimal para calcular el resultado. Tome 5, muévala en 2 lugares, termine en 500. En su ejemplo, debe tomar su número, 3.40282347 y mover el lugar decimal más de 38 veces.

+0

gracias por la explicación! –

5

Prueba el siguiente código:

float f = float.MaxValue; 
Console.WriteLine("Origianl Value: " + f); 
Console.WriteLine("With Zeros:" + f.ToString("0")); 

Valor

Origianl Value: 3.402823E+38 
With Zeros:340282300000000000000000000000000000000 
Cuestiones relacionadas