Default locale is actually default, not necessarily the local set.
I don't have access to my code at the moment so I'll have to do this from the top of my head and without actually working code... but I'll give it a try.
When a new user accesses the app I check the locale, to see what this is set to, "default" or something else, if it is set to default then I force it to the locale inferred by the user's IP address, if I have this local available otherwise I set it to English.
There is such a thing as default in the list of locale's which usually is _EN as far as I know.
I think what you are seeing is that the "default" locale you are using is actually default (_EN) thus the number format is most likely set to #,##0.0## instead of the #.##0,0## you are trying to use. I would suggest simply telling the number formatter to use the _DE format (or simply the same as the locale is set for for the user ;-)
Sorry for the lack of code, that the explanation is clear enough without it.
Regards,
Rob