This is a question about typography in German texts.
Typically, typography is not a subject in grammar teaching.
That results in a lot of awful typography all around.
As witnessed at Prozentzeichen:
Wie bei Maßeinheiten wird zwischen die Zahl und das Prozentzeichen ein geschütztes Leerzeichen gesetzt. Der Duden empfiehlt hier, einen kleineren, festen Zwischenraum zu verwenden. Nach dem Chicago Manual of Style soll allerdings in englischsprachigen Texten kein Zwischenraum zwischen eine Zahl und ein Prozentzeichen gesetzt werden.
Meaning: contrary to English rules (CMS), where a number should be followed without a space, in German texts the number is followed with a nonbreaking space. (And Duden for example even recommends a narrower spatium [Schmales Leerzeichen, thin space]. That is extremely rare to find except in texts by people who really care about typography.) – Exact rules for English texts should follow the style guide that fits your application.
Non-breaking space means that between number and sign will never be a line break. Even that is quite rare in actual use, but very recommended. While most aspects of these special format spaces rules are nearly invisible to an untrained eye, a new line starting with a percent sign is.
A non-breaking space can be encoded in HTML with
and is accessed for most editors on different platforms as follows:
Windows: Alt+0+1+6+0 (doesn't always work)
Mac: ⌥Opt+Space
Linux(X11): Compose, Space, Space or AltGr+Space
A spatium encoded in HTL with  
and is accessed
Windows: Alt+2+0+0+6 (there are five versions between alt+2001 and alt+2007)
Mac: Shift+Opt+Space
Linux: Ctrl+Shift+Space
To illustrate:
- 100% version without space
- 100 % version with thin space
- 100 % version with normal non-breaking space for comparison