Ejemplo
int i;
float f;
f = 3.6;
i = (int) f; // ahora i es 3
Nota
Cuando hacemos un casting de un float a un int (coma flotante a entero) el valor es truncado, no redondeado. Así que por ejemplo, tanto (int) 3.2 como (int) 3.7 acaban siendo 3.
Fuente: http://arduino.cc/es/Reference/Cast
Una ved llegados a este punto podemos pensar que cast no muy útil puesto que al utilizarlo perdemos los decimales. Pero existe un truco para pasar un valor foat a int sin perder las decimales. Imaginemos que estamos trabajando con un termometro que nos mide la temperatura en grados, y el valor entregado lo tenemos almacenado en una variable float, y nosotros queremos pasarlos a una variable tipo int con dos decimales de precisión. Para solventar este problema, tenemos que trabajar en fracciones de la unidad (décimas, centésimas, milésimas) y escoger la unidad que mejor se ajuste a nuestras necesidades.
En este ejemplo que me puso noter en el foro de arduino se ve claramente a que me refiero:
Código: |
float grados=27.56; int centGrados= grados*100.0; // centGrados=2756 Serial.print(centGrados/100); // Imprime 27 Serial.print(","); Serial.print(centGrados%100);// Imprime 56 |
Fuente: http://forum.arduino.cc/index.php?topic=208565.0 |
Gracias a ehrja y noter por enseñarme este truco.