如用户将输出数据连接到一个数值表示方法不同的目标端口,LabVIEW将按以下规则转换数据类型:

  • 有符号或无符号整型转换为浮点型 - LabVIEW将数据转换为尽可能接近的数值。如浮点数比整数精度高,这样的转换是精确的。如整数比浮点数精度高,LabVIEW在转换过程中将尽可能保持精确性。
  • 浮点型转换为有符号或无符号整型 - 如浮点型的数值在整型取值范围之外,LabVIEW将它转换为整型的最大或最小值。例如,如将负的无符号浮点数转换位无符号整数,结果将为0
  • LabVIEW将枚举型视为无符号整数 - 例如,如浮点数–1转换为枚举值,LabVIEW会将它转换为枚举型取值范围内的值。如枚举型取值范围是0-25,LabVIEW将把值强制转换为0。
  • 整型转换为整型 - 对于超出目标整型取值范围的数值,LabVIEW不会将它们转换为目标整型的最大或最小值。当被转换的源比目标的取值范围小时,如源是有符号的,LabVIEW将扩充源的符号位位数;如源是无符号的,LabVIEW将用零填充扩充的位。如源比目标的取值范围大,LabVIEW将仅截取最少的有效位数。
  • 整型、浮点或定点数转换为定点数 - LabVIEW将定点数范围之外的值强制转换,使其位于所允许的定点数的最小值和最大值之间。

如要把两个不同数据类型的数值连接至要求输入为相同数据类型的数值函数,LabVIEW会将其中一个接线端的数据表示转换为另一个。LabVIEW自动选择更长位数的精度表示法。如位数相同,LabVIEW将选择无符号表示法而不选择有符号表示法。

注: (FPGA模块)FPGA VI中的强制转换,特别是接线端与SGL数据类型的强制相互转换,会消耗大量的FPGA资源。

LabVIEW将在程序框图节点上放置一个强制转换点,表示连线两端的数据表示法发生了强制转换。部分强制转换会占用额外的内存,增加执行时间,降低运算结果精度。要减少强制转换点,控件或常量的输出数据类型必须与接收方接线端的数据类型匹配。右键单击程序框图上的控件或常量,从快捷菜单中选择表示法,可将输入值的表示法改变为接线端的表示法。