You are probably in big trouble then. Once you create a double from it, the number actually DOES implicitly have those crap digits past the 15th decimal place. You need to understand that MATLAB is an interpreted language. When you write something like
then MATLAB stores the number as a double. When you do the similar operation
x = vpa(-119.4776119402985);
MATLAB internally sees the number -119.4776119402985, converts it to a double, and ONLY THEN looks to see what to do with that number. This is how interpreted languages work, because otherwise the interpreter would need to be intelligent enough to know what you will do with those numbers in future lines of code, reading your mind as to what it SHOULD do, rather than what you TOLD it to do! Sorry, but computers simply are not that smart yet. (Honestly, I fear the day when they are that smart.)
A double number actually is stored in binary form internally. It is NOT stored in a decimal form. The correct way to create the symbolic number -119.4776119402985 is to create it in a symbolic form.
So this will work as you desire...
Of course, if your need is simply to do high precision floating point arithmetic, you can also use my HPF toolbox. Using that toolbox, I'll show the difference in what you have done.
See that the second form allows MATLAB to implicitly create the number as a double, which is ONLY THEN passed into HPF. Once that happens, your number has been "corrupted" into a binary form that approximates your number as closely as possible.
To understand why this happens, suppose you were asked to store the number 0.1 in a binary form, but using only a limited number of binary bits of information? The fact is, it is impossible to store that decimal number exactly in binary, regardless of how many bits you use.
Thus, with 3 bits, you might store it as 0.125. With 5 binary bits, 0.09375 is the best approximation. With 7 binary bits, it looks like I can get as close as 0.1015625. With 52 bits, it looks like we can come no closer than 0.1000000000000000055511151231257827021181583404541015625.
Welcome to the sometimes topsy, turvy world of floating point arithmetic, where the rules of mathematics don't always work as you would like.