You can't eat your cake and have it too. The whole premise behind using locale settings is so that applications won't make assumptions as to what the user wants. If the user sets up their machine to have , (comma) as the thousands separator, you mustn't override that with something else, or remove it altogether. Same goes for fractional digits, decimal points, negativity, etc. I have a slightly similar situation with the project I am working on. It's a scheduling application, which makes heavy use of dates and times. The application has to work no matter what locale it is in, or what regional settings are in place. Luckily, the NLS functions minimize the pain.