/ / ¿Es limpio / seguro escribir cast solo con el especificador de formato y el operador de asignación en Objective-C? - objectivo-c, casting, especificadores de formato

¿Es seguro / seguro escribir yeso solo con el especificador de formato y el operador de asignación en Objective-C? - object-c, casting, especificadores de formato

En Objective-C, ¿es un enfoque limpio / seguro paratype cast digamos, un número de punto flotante a un entero con solo asignar la variable de punto flotante a la variable int, y con el especificador de formato% i en NSLog call?

La forma correcta de hacer esto es declarar el tipo de conversión así:

int x;
float y;

y = 7.43;

x = (int) y; //type cast (int)

NSLog(@"The value of x is %i", x);

Salida:

El valor de x es 7

Este método de conversión de tipo sería el enfoque ideal, pero intenté simplemente asignar la variable de punto flotante a la variable int y funciona de la misma manera, ¿hay alguna diferencia?

Este es el otro método sin el (type-cast):

int x;
float y;

y = 7.43;

x = y; // no (int) casting for variable "y" here

NSLog(@"The value of x is %i", x);

Salida:

El valor de x es 7

Como puede ver, es el mismo resultado, ¿cuál es la diferencia? ¿Ambos métodos son buenos? ¿Cuál es más limpio?

Respuestas

2 para la respuesta № 1

No necesita la conversión explícita, pero no puede hacer daño y hará que su código sea más legible.

Creo que esto es seguro, principalmente porque el flotador máximo es mucho más pequeño que un posible int, por lo que no debería haber pérdida de datos.

Asegúrese de que su intención sea truncar la parte decimal de su valor flotante en lugar de redondear.