• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Вопрос К Знатокам Vb6

17.11.2013
1
0
#1
Много лет использую свои программы для работы со станками с ЧПУ. В управлении станками с дискретностью, кратной метрической системе проблем не возникает, но чаще попадаются станки с иррациональной дискретностью и не всегда можно жертвовать приближением значений с ухудшением точности в разумных пределах. В настоящее время требования усилились и следующая проблема стала острее. Данные по управлению сохраняются в трехмерном массиве D(X,Y) As Double. Значения могут быть целыми, дробными и иррационально дробными. После ввода всех значений программа точно использует данные управления и проблем с точностью не возникает тем более, что используется коррекция ошибок дробления. Однако после сохранения на диске и последующей загрузки массива исчезает дробная часть значений, что приводит к заметным и неисправимым ошибкам. Кроме того, к удивлению заметил, что абсолютно равные значения после загрузки и восстановления становятся неравными, а округление значений происходит некорректно и непредсказуемо.
Попытки прямого повышения порядка значений до сохранения с последующим понижением порядка, сохранение дробной части в отдельном массиве, использование различных методов сохранения и пр. ситуацию изменили мало. Логические операции над матрассчётами очень громоздки и использую только в критических ситуациях.
У кого есть конкретное мнение, как например, не особо сложным способом сохранять числа вроде 1333,333333333......, -0,00000005.... и т.п. с максимально возможной точностью?
 

Вложения

alex77755

Well-known member
15.02.2009
128
0
#2
А зачем приводить к целому?
Что вообще хранится в L
Сделай Debug.Print L
И почему посто не печатать в файл без преобразоаний как есть
Print#1, L
 
Вверх Снизу