Be careful with GMP - it considers leading zeros in a number string as meaning the number is in octal, whereas 'bc' doesn't: gmp_strval("000100", 10) => 64 bcmul("000100", "1") => 100