Imagine an application where we have mixing of number formatting with regards to separators. To simplify we'll pretend it's just US Dollars (12,345.67) and Euros (12.345,67).
Some users can view and edit both Dollars and Euros values -- on the same screen. Some users are used to Dollars, others are used to Euros.
download bmml source – Wireframes created with Balsamiq Mockups
When it comes to validating and formatting user input of these monetary values, it seems like there are at least three possible approaches for validating the input:
1) Require separators to match the user's locale (e.g. French users must use period for thousands and comma for decimal), regardless of the currency of the value
2) Require separators to match the format expected by the currency (e.g. Euros must be entered with period for thousands and comma for decimal), regardless of user's locale
3) Attempt to interpret the value "intelligently" based on what was entered (and deal treat ambiguous values as a validation error), e.g. "1,23" and "1.23" would both be treated as 1 + 23/100.
Which is the least error prone, most user friendly approach? Is there any research to back that up?