Appends value as the narrowest exact decimal type.
if the scale is outside [0, 38] or the precision exceeds 38 digits — the encoding cannot represent those, and rounding silently would be worse.
[0, 38]