"the percentage values allowed have been limited to integers to permit efficient parsing and processing. (Use of the symbol and allowing non-integer decimal values would introduce parsing complexity.)"
The complexity in parsing has been overstated. Parsing 1 million non-integers with symbols only takes less than 1 second of processing time
Use well known units and symbols for human readability for Percentages.
e.g. tableWidth="80"
zoomFactor="250.5"
coverage="63.5"
e.g. tableWidth="80"
zoomFactor="250.5"
coverage="63.5"
Ecma Response Page 13 (17) Line 26-29
Part 4, Section
2.15.1.95, 2.18.97,
5.1.12.41, 2.18.85 "Percentage" [Ecma
Response 2.5.7.2]
ge
Proposed Disposition of DIS 29500 Comment MY-0006 (Modified: 2008-01-09) The question of how to implement units of measure is a common design challenge in markup languages. In this case, we decided that the simplest way of doing percentage values was to keep the data type restricted to integer and floating-point values. If it’s decided that a string datatype is desired in some cases (to handle a percentage expressed as “10%”, for example), this would be an appropriate topic for consideration during future maintenance of the specification.

A new tag should be here: “passing the buck” or “sweeping under the carpet”.
Disposition is to await future maintenance to fix this issue.
===
There is no “design challenge” in markup languages.
HTML has been using % tags for over 15 years now. Browsers can parse it without a problem.
XML is a long piece of strings. In the process of reading these string types, they are parsed as whatever internal datatype, and therefore “10.5%” string will be correctly represented as a 10.5 floating point value.