當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Arduino float用法及代碼示例

[數據類型]

說明

浮點數的數據類型,具有小數點的數字。浮點數通常用於近似模擬和連續值,因為它們比整數具有更高的分辨率。浮點數可以大到 3.4028235E+38,小到 -3.4028235E+38。它們存儲為 32 位(4 個字節)的信息。

用法

float var = val;

參數

var: 變量的名稱。
val:您分配給該變量的值。

示例代碼

float myfloat;
float sensorCalbrate = 1.117;

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)

注意事項和警告

如果使用浮點數進行數學運算,則需要添加小數點,否則將被視為 int。有關詳細信息,請參閱Floating point 常量頁麵。

浮點數據類型隻有 6-7 個十進製數字的精度。這意味著總位數,而不是小數點右側的數字。與其他平台不同,在其他平台上,您可以通過使用雙精度(例如最多 15 位)來獲得更高的精度,在 Arduino 上,雙精度與浮點數相同。

浮點數並不精確,比較時可能會產生奇怪的結果。例如 6.0 /3.0 可能不等於 2.0。相反,您應該檢查數字之間差異的絕對值是否小於某個小數字。

從浮點數轉換為整數數學會導致截斷:

float x = 2.9; // A float type variable
int y = x;  // 2

相反,如果您想在轉換過程中四舍五入,則需要添加 0.5

float x = 2.9;
int y = x + 0.5;  // 3

或使用 round() 函數:

float x = 2.9;
int y = round(x);  // 3

浮點數學在執行計算時也比整數數學慢得多,因此應該避免,例如,如果一個循環必須以最高速度運行一個關鍵的時序函數。程序員經常不遺餘力地將浮點計算轉換為整數數學以提高速度。

相關用法


注:本文由純淨天空篩選整理自arduino.cc大神的英文原創作品 float。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。