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开发等相关项目,可联系们。
楼主最近还看过