we had this problem and we implemented a very nice solution, but our solution requires very much work on your part.
We removed all numeric fields from screens and replaced with character fields. We then have a service program that validates, parses and re-formats the character field into a nice, viewable field.
The result is very, very nice. Very user friendly. And, resolves the problem that you stated. It also resolves the problem where users want to enter a currency symbol or commas into the number. There is more overhead, but such a solution works very, very well.