float
נועד לשמירת מספרים בשיטה של נקודה צפה, כלומר מספרים עם נקודה עשרונית. מספרים עם נקודה צפה לרוב משמשים כדי לייצג קירוב של נתונים אנלוגיים או נתונים רציפים מכיוון שיש להם דיוק גבוה יותר ממספרים שלמים (integers). סוג נתון float
יכול להכיל מספרים נערך 3.4028235E+38- עד 3.4028235E+38. הם נשמרים ב-32 סיביות (4 בתים(bytes)). ל-float יש רק 6-7 ספרות של דיוק. זהו סה"כ כמות ספרות, לא מספר הספרות אחרי הנקודה העשרונית. בניגוד לפלטפורמות אחרות בהן אתם יכולים להשתמש בסוג נתון double
כדי לקבל דיוק גבוה יותר (למשל עד 15 ספרות), ב-Arduino הסוג double
הוא באותו הגודל כמו ה-float
.מספרים עם נקודה צפה לא מדויקים ויכולים לתת תוצאות מוזרות כשמשווים אותם. לדוגמה, 6.0 מחולק ב-3.0 יכול להיות שלא יהיה שווה ל-2.0. תצטרכו לבדוק שמספר האבסולוטי של הפרש בין שני מספרים יהיה קטן יותר ממספר קטן כלשהו.
בנוסף, חישובים על מספרים עם נקודה צפה (
float
, double
) איטיים בהרבה מחישובים על מספרים שלמים (integers) וצריכים להימנע מהם אם אתם רוצים לדוגמה להגיע למהירות המקסימלית בלולאה שבתוך פונקציה עם תזמון קריטי. מתכנתים לפעמים ממירים את החישובים על מספרים עם נקודה עשרונית לחישובים על מספרים שלמים כדי לקבל קירוב של תוצאה ולהגדיל את מהירות החישובים.אם אתם משתמשים בקבועים בחישובים, תצטרכו להוסיף נקודה עשרונית, אחרת המספרים יטופלו כמספרים שלמים. ראו הגדרת מספרים עם נקודה עשרונית (floating point) לפרטים נוספים.
דוגמה
- קוד: בחר הכל
float myfloat;
float sensorCalbrate = 1.117;
תחביר
- קוד: בחר הכל
float var = val;
פרמטרים בתחביר:
var - משתנה מסוג
float
val - ערך אותו אתם מכניסים למשתנה
דוגמה של קוד
- קוד: בחר הכל
int x;
int y;
float z;
x = 1;
y = x / 2; // y now contains 0, ints can't hold fractions
z = (float)x / 2.0; // z now contains .5 (you have to use 2.0, not 2)
ראו גם:
intdouble
הגדרת משתנים
פירוט שפת תכנות לסביבת Arduino
עמוד זה הוא תרגום של float לפי רישיון Creative Commons Attribution-ShareAlike 3.0.