I have no problem with allowing underscores, as long as they can't be initial in a number. I think internal-only, single-only is the Right Thing, but *not* to force three digits, so that in India people can write numbers like
3_14_15_926 (read "three crore fourteen lakh fifteen thousand nine hundred and twenty-six" in Indian English). I think it should work with or without base and exactness prefixes, and in any digit string including fractional-parts and complex or higher-order numbers.
Accepting quantities (number + unit) is okay too, but we'd need some agreed-on internal representation of quantities with a constructor and accessors.