Переменные имеют двойную точность по умолчанию в MATLAB, поэтому создаваемая переменная e
ограничена точностью до двойной величины, которая составляет около 16 цифр.Даже при том, что вы ввели больше цифр, двойник не имеет точности для точного представления всех этих дополнительных цифр и округления до ближайшего числа, которое он может представить.
РЕДАКТИРОВАТЬ: Как объяснено вболее детально Эндрю Янке в своем ответе на этот дополнительный вопрос Я написал, число, которое вы выбрали для e
, оказывается точным десятичным расширением двоичного значения.Другими словами, это точно представимое значение, до которого будет округлено соседнее число с плавающей точкой.Однако в этом случае все, что больше, чем приблизительно на 16 цифр после десятичной точки, не считается значимым, поскольку оно не может быть точно представлено типом двойной точности.Поэтому такие функции, как SPRINTF будут автоматически игнорировать эти небольшие значения, вместо этого печатая нули.