Update!

Try doubles instead of returning some weird number when invalid, update
multiply's invalidity case as it actually does handle negatives.