Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/11/2014, 02:34
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses
Puntos: 73
Respuesta: Diferencia entre conversión de tipo (cast) y sufijo en C?

En ese tipo de operaciones, el compilador va a promocionar todos los términos al tipo superior y efectuará la operación con arreglo al tipo superior. Así, en

1 + 2.3

1 será entero, pero 2.3 es de tipo double, por tanto el 1 promociona a double y el resultado será 1.0 + 2.3 = 3.3 (double).

De todos modos, hay que tener cuidado, por ejemplo

double x;
x = 1/3;

se evaluará primero 1/3, que dará 0, dado que el 1 y el 3 los tomará como enteros y el resultado de esa división entera es 0. A continuación promociona este resultado a double, con lo que x valdrá 0.0; sin embargo, añadiendo un punto decimal, un sufijo o un casting a cualquiera de los términos del lado derecho, el resultado será correcto.

Saludos,