首页 理论教育 Arduino单片机开发:float和double数据类型

Arduino单片机开发:float和double数据类型

时间:2023-10-23 理论教育 版权反馈
【摘要】:Arduino C允许使用浮点数。事实上,如果查看Arduino.h头文件,我们将发现PI等定义的符号常量。在该文件中,PI定义为:#define PI 3.1415926535897932384626433832795因此,可以将浮点定义为:float pi = PI;编译器将用数字3.1415926535897932384626433832795替换PI,并将其赋值转换为pi。在大多数语言中,double数据类型的存储需求是浮点的两倍。这两种数据类型在Arduino C中被同等对待。数值的精度指的是该数值的有效位数。在Arduino C中,浮点值的最高精度是七位精度。

Arduino单片机开发:float和double数据类型

Arduino C允许使用浮点数。也就是说,你的程序中可以有使用分数值的数值。事实上,如果查看Arduino.h头文件(通常位于Arduino-1.0.1\hardware\Arduino\cores\Arduino),我们将发现PI等定义的符号常量。在该文件中,PI定义为:

#define PI 3.1415926535897932384626433832795

因此,可以将浮点定义为:

float pi = PI;

编译器将用数字3.1415926535897932384626433832795替换PI,并将其赋值转换为pi(回想一下,Arduino C是区分大小写的,因此pi和PI在Arduino C中被视为不同的实体)。

浮点数的值大约为正负3.4的38次方。这是一个很大的数值,每个浮点需要4字节的存储空间。(www.xing528.com)

在大多数语言中,double数据类型的存储需求是浮点的两倍(即8个字节而不是4个字节)。因此,值的范围要大得多(通常是某些值的308次方)。这两种数据类型在Arduino C中被同等对待。

数值的精度指的是该数值的有效位数。在Arduino C中,浮点值的最高精度是七位精度。这意味着,尽管可以用38位数字表示浮点数,但只有前7位数字意义重大。剩下的31位是计算机对数值应该是什么的最佳猜测。鉴于事实上,PI的定义方式似乎有误导性。出于所有实际目的,可以对其进行定义为:

#define PI 3.141592

忘记剩下的数字,因为计算机无法在任何数学运算中以比6或7位数更高的精度表示这些数字。然而,如果你只是想显示pi,而不是以任何方式操纵它,那么pi会以相当高的精度给你这个常数。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈