Constantes fraccionarias (Informática)
|
• 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
- Constante
- Expresiones constantes
- Constantes enteras
- Constantes de enumeración
- Constantes de cadena
- Constantes de carácter