卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

學(xué)習(xí)Arduino浮點(diǎn)數(shù)運(yùn)算與比較

在學(xué)習(xí)Arduino編程過(guò)程中,了解如何使用不同類型的變量是至關(guān)重要的。本文將分享如何在程序中進(jìn)行浮點(diǎn)數(shù)的運(yùn)算和比較,以幫助讀者更好地掌握Arduino的相關(guān)知識(shí)。 準(zhǔn)備硬件及編輯程序首先,準(zhǔn)備所需的

在學(xué)習(xí)Arduino編程過(guò)程中,了解如何使用不同類型的變量是至關(guān)重要的。本文將分享如何在程序中進(jìn)行浮點(diǎn)數(shù)的運(yùn)算和比較,以幫助讀者更好地掌握Arduino的相關(guān)知識(shí)。

準(zhǔn)備硬件及編輯程序

首先,準(zhǔn)備所需的硬件。在這個(gè)例子程序中,我們只需要一個(gè)控制器和一個(gè)下載線即可開始。接著,打開Arduino IDE軟件來(lái)編輯程序。以下是示例代碼:

```c

float value 1.1;

void setup() {

(9600); //設(shè)置串口波特率為9600

}

boolean almostEqual(float a, float b) {

const float DELTA 0.00001;

if (a 0) return fabs(b) < DELTA;

if (b 0) return fabs(a) < DELTA;

return fabs((a - b) / max(fabs(a),fabs(b))) < DELTA;

}

void loop() {

value value - 0.1; //每次減0.1

if(value 0)

("The value is exactly zero");

else if(almostEqual(value, 0)) {

("The value");

(value, 7); //顯示value小數(shù)點(diǎn)后7位

("is almost equal to zero");

}

else

(value);

delay(100);

}

```

編譯程序并上傳

編輯完程序后,點(diǎn)擊編譯。如果程序尚未保存,會(huì)提示保存位置;已保存過(guò)則自動(dòng)保存改動(dòng)內(nèi)容。編譯成功后,在下方顯示“編譯完成”。在上傳之前,確保選擇正確的控制器型號(hào)(如Arduino UNO)和端口號(hào)。上傳成功后,IDE會(huì)顯示“上傳成功”。

打開串口監(jiān)視器查看輸出

打開Arduino IDE的串口監(jiān)視器,可以查看程序的輸出效果。在浮點(diǎn)數(shù)運(yùn)算中,精確度有限,通常會(huì)有一定誤差。即使沒(méi)有預(yù)期的輸出“The value is exactly zero”,但其值非常接近于零,卻永遠(yuǎn)不會(huì)為零。在Arduino中,float和double具有相同的精度。

通過(guò)學(xué)習(xí)本文提供的浮點(diǎn)數(shù)運(yùn)算示例,讀者可以更好地理解Arduino中變量類型的使用方法,以及浮點(diǎn)數(shù)計(jì)算時(shí)可能遇到的誤差情況。熟練掌握這些概念,將有助于提升對(duì)Arduino編程的理解和應(yīng)用能力。

標(biāo)簽: