Pregunta

Puede alguien explicar por qué esto hace que el error indicado en el título?

CGFloat dx = fabs(lastPoint.x - currentPoint.x);

Gracias

¿Fue útil?

Solución

fabs() devuelve un double (64-bit), pero CGFloat se define para ser un float (32 bits). Por lo general es inofensiva - Yo personalmente incluso desactivar la advertencia del compilador, como la realización de los cálculos utilizando valores double es típicamente al menos lo más rápido que el uso de valores float

.

Otros consejos

Una mejor respuesta es utilizar #include <tgmath.h>. Que define las cabeceras de las funciones de "adaptación" que llaman a la función correcta en el que sea el tamaño de parámetro.

Con ese encabezado incluido, sólo tiene que llamar fabs sin conseguir que la alerta (ni preocuparse por la pérdida de precisión causada por el uso de la función equivocada).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top