Leírás
A float a lebegőpontos, azaz a tizedesjeggyel rendelkező (nem egész számok) tárolására szolgáló adattípus. A lebegőpontos számokat gyakran használják az analóg és a folyamatos értékek közelítésére, mert nagyobb felbontásúak, mint egészek. A lebegőpontos számok lehetnek akár +/- 3.4028235E+38 közötti értéket vehet fel. A float adattípous 4 byte helyet foglal a memóriában.
Szintaxis
float var = val;
paraméterek
var: változó neve.
val: az az érték, amelyet hozzárendel ehhez a változóhoz.
Példakód
Megjegyzések és figyelmeztetések
Ha matematikai műveleteket szeretne elvégezni lebegőpontos számokkal, akkor a tizedes pontot (vessző helyett) ki kell írnia, különben egész számként fogja az adatot kezelni a fordító. A lebegőpontos konstans oldalon talál erről további információkat.
A float adattípus csak 6-7 tizedes pontossággal rendelkezik. Ez a számjegyek teljes számát jelenti, nem pedig a tizedespont jobb oldalán található számot. Más platformoktól eltérően, ahol kétszer ekkora (például legfeljebb 15 számjegy) pontosságot lehet elérni, az Arduino esetében a double adattípus mérete megegyezik a float-tal.
A lebegőpontos számok nem pontosak, és furcsa eredményeket eredményezhetnek összehasonlításuk során. Például a 6.0 / 3.0 nem feltétlenül azonos a 2.0-val. Ehelyett jó megoldás, ha a számok abszolut értékének a különbségét nézi, hogy nullához közeli értéket vesz-e fel.
A lebegőpontról egész számra történő átalakítás kerekítést nem végez, a tizedes jegyek egyszerűen levágásra kerülnek:
Ha ehelyett inkább kerekíteni szeretné az átalakítási folyamat során, akkor hozzá kell adnia 0,5-öt:
vagy használhatja a round () függvényt:
A lebegőpontos számítások elvégzése jelentősen lassabb, mint az egész számok közötti műveletek, így azt időkritikus folyamatok esetében, főleg ciklusokon belül, lehetőség szerint el kell kerülni. Ha szükség van a sebesség növelésére, akkor a programozók gyakran inkább nagyobb egész számokat használnak (10,95 helyett 1095-ként tárolják a számot, mert így egész számként tárolódik és csak akkor alakítják 10,95-re ismét, ha pl ki kell iratni valahová).
Lásd még
String()
array
bool
boolean
byte
char
double
int
éomg
short
size_t
string
unsigned char
unsigned int
unsigned long
void
word