Страница 1 из 1

Удаление повторяющихся элементов в массиве

Добавлено: 14 авг 2019, 10:51
e-not67
Здравствуйте.

Возникла следующая ситуация.
Необходимо удалить из массива повторяющиеся элементы.
Вроде ничего сложного?! Реализуем с помощью Search 1D Array.vi, запускаем и не работает (см. вложение), т.е. дубликаты в диапазоне от 0 до 1 не удаляются. Если числа в диапазоне от 1 до +∞ ,то все норм.

Может кто-нибудь объяснить почему так?

Re: Удаление повторяющихся элементов в массиве

Добавлено: 14 авг 2019, 11:08
Blackman
Измените количество знаков после разделителя в индикаторах.
0.01 -> 0.011
0.1 -> 0.11

Re: Удаление повторяющихся элементов в массиве

Добавлено: 14 авг 2019, 11:20
e-not67
Ну да, дрянь получается.
Вводишь 0.009, а LV сам меняет на 0.00899999999999999932.
Спасибо.

Re: Удаление повторяющихся элементов в массиве

Добавлено: 14 авг 2019, 13:05
Borjomy_1
e-not67, А вы почитайте, как хранятся числа с плавающей точкой! Это полная глупость так работать с действительными числами. Сначала определитесь, какие действительные числа вы считаете повторами. Если у вас фиксированное количество разрядов после запятой, то переводите массив в массив чисел с фиксированной точкой и уже там производите чистку.
т.е если у вас два значащих разряда после запятой, то умножаете число на 100 и переводите его в I32. Полученный массив уже можно чистить вашим способом. Для отображения результата массив переводите в DBL и делите на те-же 100.