Diferencia entre revisiones de «Constantes fraccionarias (Informática)»

(Sin diferencias)

Revisión del 11:52 11 may 2011

Constantes fraccionarias (Informática)
Información sobre la plantilla
Concepto:Corresponden al concepto matemático de números fraccionarios

Constantes fraccionarias (Informática). También llamada "de punto flotante" corresponden al concepto matemático de números fraccionarios. Es decir, cantidades con cierto número de cifras decimales. Su representación en el código fuente puede contener:
• Parte entera                           37.092e-2L 
• Punto decimal                          37.092e-2L 
• Parte fraccionaria                     37.092e-2L 
• e/E y un entero con signo (exponente)  37.092e-2L. 
• Sufijo (indicador de tipo): f/F ó l/L  37.092e-2L 

Pueden omitirse la parte entera o la decimal (pero no ambas); pueden omitirse el punto decimal y la letra E (e), y el exponente (pero no ambos). Las constantes fraccionarias negativas se forman igual que las positivas, pero precediéndolas con el operador unitario menos ( - ).

Posibles notaciones

Las reglas anteriores permiten utilizar para las constantes fraccionarias dos tipos de notación:

 • Notación convencional (de punto decimal)
 • Notación científica (con exponente E/e)

Ejemplos:

Expresión Valor

 23.45e6    23.45 10^6
 .0         0
 0.         0.0
 1.         1.0
 -1.23      -1.23
 2e-5       2.0  10^-5
 3E+10      3.0  10^10
 .09E34     0.09 10^34
 Nota: la notación 10^-5 significa 10 elevado a menos 5 ( 10-5 ).

En ausencia de cualquier sufijo, las constantes fraccionarias se consideran de tipo double, aunque se puede obligar a que sea considerada de tipo float añadiéndole el sufijo f ó F. Ejemplo:

 x = 1.;     // L.1:
 y = 1.f;    // L.2:

En L.1 la constante 1.0 es considerada double, y podría producir una advertencia del compilador: Warning: Initialización to 'int' from 'double'. L.2 produciría: Warning: Initialización to 'int' from 'float'. La razón es que, por tradición del C, en ausencia de una declaración explícita de tipo, en expresiones como L.1 y L.2, el compilador C++ supone que x e y son tipo int.

De forma análoga, el sufijo l / L la fuerza a ser del tipo long double. Ejemplo:

 long lg1 = 3.0;      // L.1:
 long lg2 = 3.2L;     // L.2:
 long double = 4.0L;  // L.3: Ok.

En L.1el compilador puede mostrar un aviso: Warning: initialization to 'long int' from 'double'. En L.2 el aviso sería: Warning: initialization to 'long int' from 'long double'.

Rangos permitidos

Los rangos permitidos para los tres tipos disponibles son: float, double y long double.

 Tipo         Tamaño (bits)      Rango       . 
 float        32             3.4  10^-38  a 3.4  10^38
 double       64             1.7  10^-308  a 1.7  10^308
 long double  80             3.4  10^-4932 a 1.1  10^4932

Véase también

Fuente