function makeNumberFromNonDecimalParts (parts) {
  const n = parseInt(parts.integerPart, parts.radix)
  let f = 0
  for (let i = 0; i < parts.fractionalPart.length; i++) {
    const digitValue = parseInt(parts.fractionalPart[i], parts.radix)
    f += digitValue / Math.pow(parts.radix, i + 1)
  }
  const result = n + f
  if (isNaN(result)) {
    throw new SyntaxError('String "' + parts.input + '" is not a valid number')
  }
  return result
}
Makes a number from a radix, and integer part, and a fractional part
@param {parts} [x] parts of the number string (from getNonDecimalNumberParts)
@returns {number} the number