آموزش, رفرنس

float در آردوینو

float در آردوینو

نوع‌داده‌ی float در آردوینو برای ذخیره‌سازی اعداد ممیز شناور (اعدادی که ممیز یا نقطه اعشار دارند) است. معمولاً از اعداد ممیز شناور برای تقریب زدن مقادیر آنالوگ و پیوسته استفاده می‌شود؛ چراکه این نوع اعداد دقت بیشتری از اعداد صحیح (integers) دارند.

اعداد ممیز شناور می‌توانند به بزرگی 3.4028235E+38 و به کوچکی 3.4028235E+38- باشند. این نوع‌داده 32 بیت (4 بایت) اطلاعات را در خود ذخیره می‌کند.

floatها 7-6 عدد ده‌دهی دقت دارند؛ یعنی کل عدد، این تعداد رقم دارد، نه تعداد ارقام سمت راست اعشار. برعکس دیگر زبان‌ها که برای افزایش دقت (به‌عنوان‌مثال تا 15 رقم) می‌توان از نوع‌داده‌ی double استفاده کرد، در آردوینو، double نیز هم‌اندازه‌ی float است.

اعداد ممیز شناور، دقیق نیستند و ممکن است هنگام مقایسه، نتایج عجیبی تولید کنند. برای مثال حاصل 6.0/3.0 ممکن است برابر با 2.0 نشود. به جای اینکار باید چک کنید که مقدارِ مطلقِ تفاضلِ بین اعداد، کمتر از عددی کوچک باشد.

در انجام محاسبات، اعداد ممیز شناور بسیار آهسته‌تر (زمان‌برتر) از محاسبات اعداد صحیح هستند. پس اگر به‌عنوان‌مثال برای یک کار حیاتی از نظر زمان، حلقه‌ای دارید که باید با نهایت سرعت اجرا شود، از اعداد ممیز شناور استفاده نکنید. معمولاً برنامه‌نویسان برای افزایش سرعت، اعداد ممیز شناور را به اعداد صحیح تبدیل می‌کنند.

اگر می‌خواهید با اعداد ممیز شناور محاسبات انجام دهید، باید یک ممیز قرار دهید؛ وگرنه عدد به‌عنوان int در نظر گرفته خواهد شد. برای جزییات بیشتر صفحه‌ی ثابت‌های ممیز شناور را ببینید.

مثال:

 

سینتکس (نحو):

  • var: نام متغیرِ از نوع float.
  • val: مقداری که به متغیر نسبت می‌دهید.

کد نمونه:

 

 

int در آردوینو

double در آردوینو

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

4 دیدگاه در “float در آردوینو

  1. Avatar for مهدي مهدي گفت:

    سلام خسته نباشد
    ميخاستم از ورودي آنالوگ مثلا يك سنسور استفاده كنم و مقدار ورودي اين سنسور خيلي برام مهمه.ولي همش 2 يا 3 رقم اعشارو نشون ميده كه اونم خيلي بالا پايين ميشه وثابت نيست .آيا ميشه تا يك رقم اعشارو از اين ورودي آنالوگ خوند و دريافت كرد.؟؟؟فقط تا يك رقم اعشار
    با تشكر

    1. Avatar for Zeus ‌ Zeus ‌ گفت:

      سلام دوست عزیز
      اعداد ممیز شناور در واقع به شکل ۴ بایت از حافظه رو اشغال میکنن و این که بگید با فلان مقدار اعشار بخونم در واقع معنی درستی نمیده
      کاری که میتونید انجام بدید اینه که با یک رقم اعشار نمایش بدید که توی حوزه بندی دستور printf میتونید جزییاتش رو ببینید.
      اگر پرش روی نمونه ها دارید میتونید از داده های دریافتی میانگین گیری کنید تا پرش ها کمتر شوند

  2. Avatar for بهزاد بهزاد گفت:

    سپاس
    بدردم خورد

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      خواهش میکنیم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *