Példa
float myfloat;
float sensorCalbrate = 1.117;
int x;
int y;
float z;
x = 1;
y = x / 2; // y most 0-t tartalmaz, az int nem tarthat törteket
z = (float)x / 2.0; // z most 0,5-öt tartalmaz (nem 2-t, hanem 2.0-t kell használni)
Megjegyzések és figyelmeztetések
Ha lebegővel számol, tizedesvesszőt kell hozzáadnia, ellenkező esetben a rendszer int-ként kezeli. A részletekért lásd a Lebegőpontos állandók oldalt.
A float adattípus csak 6-7 tizedesjegy pontosságú. Ez a számjegyek teljes számát jelenti, nem a tizedesvesszőtől jobbra lévő számjegyeket. Más platformoktól eltérően, ahol a double használatával nagyobb pontosságot érhet el (például legfeljebb 15 számjegy), az Arduinon a double mérete megegyezik a floatéval.
A lebegőpontos számok nem pontosak, és összehasonlítva furcsa eredményeket adhatnak. Például a 6.0 / 3.0 nem egyenlő a 2.0-val. Ehelyett ellenőriznie kell, hogy a számok közötti különbség abszolút értéke kisebb-e valamilyen kis számnál.
A lebegőpontos számok egészre történő matematikai átalakítása csonkolást eredményez:
float x = 2.9; // Lebegőpontos típusú változó
int y = x; // 2
Ha ehelyett a konverziós folyamat során kerekíteni szeretne, 0.5
-öt hozzá kell adnia:
float x = 2.9;
int y = x + 0.5; // 3
vagy használja a round()
függvényt:
float x = 2.9;
int y = round(x); // 3
A lebegőpontos matematika a számítások végrehajtása során is sokkal lassabb, mint az egész számok matematikája, ezért kerülni kell, ha például egy ciklusnak a legnagyobb sebességgel kell futnia egy kritikus időzítési függvényhez. A programozók gyakran igyekeznek a lebegőpontos számításokat egész számokká alakítani a sebesség növelése érdekében.