【发布时间】:2014-01-27 21:57:16
【问题描述】:
更新:原来只是 LabView 搞砸了。甚至整数也没有正常通过。删除并重新创建一些节点解决了这个问题。
我编写了一个 .Net 3.5 程序集,由 LabView 工程师使用。它至少是 LabView 7,但我认为更高。我的程序集中的一个方法是返回一个对象数组,其中每个实例都有一个 decimal 类型的属性(除其他外)。 LabView 工程师并没有做什么特别花哨的事情,只是将序列转储到 VI 的前端,这些十进制属性中的每一个看起来都像非常小的浮点数。实际的小数可能是 740.0,但它在 LabView 中被视为双精度数,其值类似于 8.12345E-315。这相差了好几个数量级!
字符串和布尔属性通过就好了。
知道为什么会这样吗?
编辑:我们使用带有一些十进制字段和属性的非常简单的类对此进行了测试,它在 LabView 中运行良好。这个 DLL 有问题,所以我们正在尝试其他一些测试,看看我们是否可以使用不同的 DLL 复制问题。
这是一些改变字节序的测试的屏幕截图。交换我们简单测试类的属性的字节序类型会产生相同的值。从真正的类库中交换小数的字节序类型只会产生不同的小浮点数。
【问题讨论】:
-
你能发布一些LabVIEW代码吗?图表的屏幕截图就足够了