Allow to add abstract weight objects

Also, increase the precision of the conversion and return more consistent
results (python decimal quantized to 4 decimal places)