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

  • Автор темы TheDemetrius11
  • Дата начала
T

TheDemetrius11

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

Вложения

  • ДО.png
    ДО.png
    9 КБ · Просмотры: 367
A

alex77755

А зачем приводить к целому?
Что вообще хранится в L
Сделай Debug.Print L
И почему посто не печатать в файл без преобразоаний как есть
Print#1, L
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!