2012-05-21 17 views
7

¿Qué es E+3? ¿Qué pasa exactamente aquí? ¿Podemos usar este enfoque en otros tipos de datos o solo podemos usarlo en puntos flotantes?¿Qué es E en coma flotante?

static void Main(string[] args) 
{ 
    double w = 1.7E+3; 
    Console.WriteLine(w); 
} 

de salida: 1700

+0

las respuestas que obtendrá de los diversos idiomas serán similares, pero no idéntico. Elija ** un ** lenguaje de programación y limite su pregunta al mismo. –

+3

E + 3 == 10^3 == 10 * 10 * 10 == 1000. Por lo tanto, 1.7 * 1000 = 1700. Se llama "notación de ingeniería" afaik – Alex

+0

Me pregunto por qué alguien preferiría 1.7E + 3 en comparación con solo 1700 . – BlueM

Respuesta

11

E notation

mayoría de las calculadoras y muchos programas de computadora presentan resultados muy grandes y muy pequeños en notación científica. Debido a exponentes superíndices como 10 no siempre se pueden mostrar convenientemente, la letra E o e se usa a menudo para representar multiplicado por diez a la potencia de (que se escribirá como "x 10 b") y es seguido por el valor del exponente. Tenga en cuenta que en este uso el carácter e no está relacionado con la constante matemática e o la función exponencial e x (una confusión que es menos probable con capital E); y aunque representa el exponente, la notación se conoce generalmente como notación E (científica) o notación e (científica), en lugar de notación exponencial (científica) (aunque también se produce la última). Las publicaciones no recomiendan el uso de esta notación.


En cuanto a su segunda pregunta:

podemos utilizar este método en otro tipo de datos o sólo podemos usarlo en puntos flotantes?

Ver las C# spec:

literales reales [el tipo de literales numéricos que se permite una E en ellos] se utilizan para escribir valores de tipos float, double, y decimal.

Sin embargo, tienen que desechar o sufijo literal apropiadamente cuando se asigna a anyhting que no sea un Double, porque cualquier literal con un e o E en ella se reconoce como un Double en Visual Studio. No puedo encontrar dónde se especifica este comportamiento.

float f1 = 7E1;  // Compile error. Needs F suffix (7E1F) 
decimal d1 = 8E2; // Compile error. Needs D suffix (8E2D) 
double d2 = 9E3; // Works. 

int overninethousand = (int)9E3 + 1; // Works 
+0

muchas gracias, lo tengo ♥ –

+1

gracias de nuevo, fue muy útil ... –

9

En general, esa es la notación exponencial/científica ...

1.7E + 3 = 1,7 x 10^3 = 1700

+0

Lo siento, originalmente leí mal su número como 1.73E + 3, mi mal, lo arreglé. –

+0

muchas gracias, lo tengo –

4

E + 3 significa el punto decimal se mueve a 3 veces las correctas

1,7 -> 17.0 -> 170.0 -> 1700.0

+0

muchas gracias, lo tengo –

1
E+3 = 10^3, so 1.7 * 10^3 = 1700 
+0

muchas gracias, lo tengo –

Cuestiones relacionadas