1 byte can contain up to 255 digits
2 bytes up to about 65 thousand
4 bytes up to 4 million
8 bytes up to 18 quadrillion
Low precision syncing (2 bytes) is indeed usually more than enough for most cases, as far as numbers go. You'll probably know when you need higher precision when you need it.
It is most obvious when dealing with bitwise toggles. 1 byte has 8 bits, which is more or less 8 on/off toggles, or true/false statements. This is usually used to represent inputs, or keypresses, to determine what keys are down at a given time. 2 bytes increases that to 16 bits, 4 to 32, and 8 to 64. Again, 16 is usually more than enough (we only have 10 fingers to input things with!), but you can send a lot of stateful information besides just inputs for each client in the same packet if you use a higher precision sync. Again, you'll know when you need it.
Also consider that a single ascii character requires 1 whole byte. So to sync just a 4 character string (converted to a value), for example the peerid, it would require 4 bytes. But don't do that, because peerID's shouldn't change and you should never need to actually sync it.
One more thing I thought of, but I don't know how big an effect it actually has, is that the more precise a value is, the less of an effect rounding error will have. Rounding errors that build up over time result in desync between clients, which is a major headache for any sort of multiplayer environment or net code.