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

Тема в разделе "Visual Basic", создана пользователем TheDemetrius11, 17 ноя 2013.

  1. TheDemetrius11

    TheDemetrius11 New Member

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

    Вложения:

    • ДО.png
      ДО.png
      Размер файла:
      19,8 КБ
      Просмотров:
      11
  2. alex77755

    alex77755 Well-Known Member

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

Поделиться этой страницей