当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。