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