Chars is the chars comprising the printed representation of Number.
Initially, either Number must be instantiated to a number, or Chars must be instantiated to a proper chars.
If Chars is instantiated to a chars that corresponds to the correct syntax of a number, Number will be unified with that number.
Else, Number should be instantiated to a number, and Chars will be unified with the chars that make up its printed representation.
Number is uninstantiated and Chars is not instantiated enough
Number is not a number or Chars cannot be unified with a chars
Chars is a list corresponding to a number that can’t be represented
Chars does not correspond to a syntactically valid number
The check of Chars when Number is instantiated was added in release 4.3 for alignment with the ISO Prolog standard. Previous releases simply failed in this case instead of reporting an error for malformed Chars.