Thanks to Gerd and Jochen, who brought me on track.
I thought the
extra_accuracy_string would be an additional format string, but it is a
return (!) string. It returns the exponent, which has to be printed after the return value of the function. To return anything inside the format string it has to be 'told' to the STR{2} function, that it has to calculate the exponent and the intervals for this. Is there no exponent, because it's zero, the value is an empty string. The 'exponent# is no real exponent, it is the rounded part after (!) the last decimal places, which is changed to string.
For this the format string has the configuration:
"%[flags]
[accuracy][min._#_of_chars][.decimal_places][conversion_unit]"
And [accuracy] can be "*0", "*1", "*2", "*3" and "*4". See manual.
e.g. "%+-*16.1m" means
% Beginning of string
+ Show always algebraic sign
- bounded to left margin (add spaces to the end)
*1 Accuracy format
6 Min. Number of chars: 6
.1 one digit after decimal point
m unit: meters
Mention, that "...*16..." can/has to be set without spaces, because the accuracy format is two chars wide. I think for this the star is part of this flag.
Puhhh. Hard work with the good old manual.