When SetPrecision is used to increase the precision of a number, the number is padded with zeros. The zeros are taken to be in base 2. In base 10, the additional digits are usually not zeros.
If expr contains machine-precision numbers, SetPrecision[expr, p] can give results which differ from one computer system to another.
SetPrecision will first expose any hidden extra digits in the internal binary representation of a number, and only after these are exhausted add trailing zeros. »
0.004`25 generates a number with all trailing digits zero and precision 25 on any computer system.
SetPrecision[expr, p] does not modify expr itself.