
در آردوینو، ثابت اعشاری (Floating Point Constant) به هر عددی گفته میشود که شامل یک نقطه اعشاری (.) باشد و بهصورت مستقیم در کد نوشته شود.
این اعداد بهطور خودکار توسط کامپایلر به عنوان نوع دادهی float در نظر گرفته میشوند — مگر اینکه مشخصاً به عنوان double تعریف شوند (که در آردوینو AVR همان float است).
توضیح برای مبتدیها: وقتی شما در کد عددی مثل
3.14یا0.001مینویسید، آردوینو آن را بهعنوان یک «ثابت اعشاری» تشخیص میدهد. این عدد در حافظه بهصورت خاصی ذخیره میشود که بتواند بخش اعشاری را هم نگه دارد — برخلاف اعداد صحیح مثل5که فقط برای اعداد کامل طراحی شدهاند.
در پروژههای آردوینو، اغلب با مقادیری سروکار داریم که نیاز به دقت اعشاری دارند: — دما (مثل ۲۳.۵ درجه)
— ولتاژ (مثل ۳.۳ ولت)
— فاصله (مثل ۱۲.۷ سانتیمتر)
— ثابتهای ریاضی (مثل π = ۳.۱۴۱۵۹)
بدون استفاده از ثابتهای اعشاری، نمیتوانیم این مقادیر را بهدرستی در کد بنویسیم.
در آردوینو، ثابت اعشاری را میتوان به چند شکل نوشت:
float pi = 3.14159;
float voltage = 5.0;
float small = 0.001;
⚠️ نکته مهم: برای اعداد صحیحی که میخواهید بهعنوان اعشاری در نظر گرفته شوند، حتماً .0 اضافه کنید:
float a = 5; // ممکن است به عنوان int در نظر گرفته شود (سپس تبدیل شود)
float b = 5.0; // قطعاً به عنوان float در نظر گرفته میشود
برای اعداد بسیار کوچک یا بسیار بزرگ، میتوانید از نماد علمی استفاده کنید:
float micro = 1e-6; // معادل 0.000001
float mega = 1e6; // معادل 1000000.0
float avogadro = 6.022e23;
در اینجا، e یا E به معنی «ضرب در ۱۰ به توان» است.
توضیح برای مبتدیها:
1e-6یعنی «۱ ضرب در ۱۰ به توان منفی ۶» = ۰٫۰۰۰۰۰۱. این روش برای نوشتن اعداد خیلی کوچک (مثل ثابت پلانک) یا خیلی بزرگ (مثل جمعیت جهان) بسیار راحتتر از نوشتن صفرهای زیاد است.
در این مثال، از یک ثابت اعشاری برای تبدیل مقدار خام سنسور به ولتاژ استفاده میشود:
const float REFERENCE_VOLTAGE = 5.0; // ولتاژ مرجع آردوینو
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
float voltage = sensorValue * (REFERENCE_VOLTAGE / 1023.0);
Serial.print("ولتاژ: ");
Serial.print(voltage, 2); // نمایش با 2 رقم اعشار
Serial.println(" ولت");
delay(1000);
}
در اینجا، 5.0 و 1023.0 هر دو ثابتهای اعشاری هستند تا محاسبه بهدرستی بهصورت اعشاری انجام شود.
اگر عددی مثل 5 را بهعنوان مقدار اولیه برای یک float استفاده کنید، کامپایلر ابتدا آن را بهعنوان int در نظر میگیرد، سپس آن را به float تبدیل میکند. این کار معمولاً مشکلی ایجاد نمیکند، اما در محاسبات پیچیده یا هنگام استفاده از ماکروها ممکن است باعث خطاهای ظریف شود.
بنابراین، عادت کنید همیشه برای اعداد اعشاری از .0 استفاده کنید — حتی اگر بخش اعشاری صفر باشد.
ثابتهای اعشاری در آردوینو (مثل همه اعداد float) فقط دقتی حدود ۶ تا ۷ رقم معنیدار دارند. پس نوشتن 3.14159265358979323846 بیفایده است — چون فقط 3.141592 ذخیره میشود.
برای اجتناب از سردرگمی، ثابتها را با دقت واقعیشان بنویسید:
const float PI = 3.141592; // کافی است — بیشتر از این ذخیره نمیشود
float در نظر گرفته میشود.0 استفاده کنید1e-6) برای اعداد بسیار کوچک یا بزرگ استفاده کنیداین مطلب بر اساس مستندات رسمی Arduino از بخش Floating Point Constants – Language Reference تهیه شده است، با توضیحات سادهشده، مثالهای کاربردی و نکات طلایی منحصربهفرد برای جامعه فارسیزبان.
برچسب های مهم