Well, almost.
In the case of an analog signal, we may need some quite accurate values to produce a quality product. For instance, let's say we need the signal to equal 1.7 when x = 3.5. Then we had better hope no noise comes in and interferes with the signal right there, because it could easily change that value, and that messes with the quality.
For a digital (in this case, binary) signal, however, let's say a 1 is 5 volts and a 0 is 0 volts. Then what we do is, we set a range around 5 volts and a range around 0 volts, and declare anything in those ranges to be 1 or 0, respectively. So if we send out a signal that equals 5V at some point, and some noise gets in and changes it to 5.3V or 4.32V, then the receiver looks at it, decides it's closer to 5V, and declares it a 1, just like the transmitter intended. So we literally can get data that is as high-quality as the transmitter intended.
This is also why people who spend large amounts of money for "high quality" digital cables instead of a cheap 10$ cable have gotten scammed. With digital, you either have the correct value, or you don't. It is impossible to increase the quality. If the cable gets a 1 when it needs a 1 and a 0 when it needs a 0, then the quality cannot be improved.
Combine this with some clever error-correcting codes that detect when there's been a bit error, and digital transmission can be quite reliable.