ОБНОВЛЕНИЕ: Оказывается, это был просто взрыв LabView. Даже ints не проходили должным образом. Удаление и повторное создание некоторых узлов решало проблему.Почему LabView конвертирует десятичные числа в маленькие числа с плавающей запятой?
Я написал сборку .Net 3.5, которая потребляется инженером LabView. Это, по крайней мере, LabView 7, но я думаю, что выше. Метод в моей сборке возвращает массив объектов, где каждый экземпляр имеет свойство типа decimal
(между прочим). Инженер LabView не делает ничего особенного и просто сбрасывает последовательность на front-end VI, и каждое из этих десятичных свойств выглядит как очень маленькие числа с плавающей запятой. Фактическое десятичное значение может быть 740.0, но оно видно в LabView как double, со значением 8.12345E-315. Это на несколько порядков!
Строковые и булевы свойства проходят через отлично.
Любая идея, почему это происходит?
EDIT: Мы проверили это, используя очень простой класс с некоторыми десятичными полями и свойствами, и он отлично работал в LabView. В этой DLL есть что-то подозрительное, поэтому мы пытаемся провести некоторые другие тесты, чтобы увидеть, можем ли мы реплицировать проблему, используя другую DLL.
Вот скриншот некоторых тестов, которые меняются под конец. При замене конечного типа свойств нашего простого тестового класса производились одинаковые значения. Перестановка конечного типа десятичных знаков из библиотеки реальных классов создает только небольшие крошечные поплавки.
http://i.imgur.com/WpZ8bYX.jpg
Можете ли вы опубликовать некоторые из кода LabVIEW? скриншот диаграммы будет достаточным – CharlesB