为什么 在LabVIEW 中, 浮点 数 会 失去 精度? 点击:345 | 回复:0



fjczd

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:552帖 | 36回
  • 年度积分:703
  • 历史总积分:1294
  • 注册:2008年8月14日
发表于:2022-11-27 20:51:06
楼主

LabVIEW浮点型和双精度数据类型之间的精度差异是什么 为什么 在LabVIEW 中, 浮点 数 会 失去 精度?

程序中使用浮点数据类型或双精度数据类型。这些数据类型之间有什么区别?

浮点型的变量只有 7 位精度,而双精度类型的变量有 15 位精度。如果需要更好的精度,请使用双精度而不是浮点数。

使用浮点数据类型时,将看到数值的舍入,如下所示:

为什么 在LabVIEW 中, 浮点 数 会 失去 精度?

在编程环境中使用浮点数或双精度数,注意到该数字的值略有变化。例如,我输入 2.4,现在看到 2.39999999999999999。为什么浮点数不太准确?

浮点不准确有两个主要原因:

1.十进制数的二进制表示可能不精确

特定的浮点数或双精度数字不能完全按预期表示的情况并不罕见。由于 CPU 表示浮点数据的方式,浮点十进制值通常没有精确的二进制表示形式。因此,可能会遇到精度损失,并且某些浮点运算可能会产生意外的结果。在上面提到的情况下,2.4 的二进制表示可能不完全是 2.4。相反,最接近的二进制表示形式是 2.3999999999999999。原因是浮点数由指数和尾数两部分组成。浮点数的值实际上是使用特定的数学公式计算的。

看到的精度损失将发生在任何操作系统和任何编程环境中。

注意:使用二进制编码十进制 (BCD) 库来保持精度。BCD 是一种对数字进行编码的方法,其中每个十进制数字单独编码。

有关为什么会发生这种精度损失的更多信息,可能需要阅读IEEE/ANSI 标准 754-1985,该标准记录了二进制浮点运算标准。

2.类型不匹配

可能已经混合了浮点型和双精度型。请确保在数字之间进行算术运算时,每个数字的类型相同。

注意:float类型的变量只有大约 7 位精度,而双精度类型的变量有大约 15 位精度。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。




楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师