User Experience Stack Exchange is a question and answer site for user experience researchers and experts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
Won't the money fields need some sort of field associated with it to indicate what the currency is? If you have instances where the currencies are mixed (some users use dollars, others use euros), you'll have users wondering exactly how much money they're looking at. There's a big difference between 30 dollars and 30 euros. Plus, you may have users who need to work with multiple currencies. – cimmanon Oct 2 '13 at 20:20
@cimmanon The input would have a label that denoted the currency. – jlarson Oct 2 '13 at 20:33
Wouldn't that require having a field for each currency (which, in turn might be confusing/annoying to the user)? Or are you deliberately eliminating what currencies the user sees? – cimmanon Oct 2 '13 at 20:49

The decimal separator (and btw. placement of the currency sign) is locale dependant, not currency dependant, so a french user should be able to use a comma as radix regardless of the currency involved. Oracle has a short list of locales and associated number formats:

Microsoft also has some good information about globalization and localization.

share|improve this answer
Great links, but they deal primarily with display. Are users in those locales fairly guaranteed to enter numbers in those formats? I feel like some variation may occur, especially because I bet some users are conditioned to expect US format on some apps (where the developers failed to localize properly) and their locale's format in other places. – jlarson Oct 2 '13 at 21:18
@jlarson I live in one of those countries, and it always is a hassle to user non-localized software since the period is not available on the numeric keypad. I have seen cases though where users were conditioned to use a period by some other software (which wasn't localized) and then just assumed that would apply everywhere. So it is important to give good feedback. – Hazzit Oct 2 '13 at 21:29
sounds frustrating. I guess we'll just have to get everyone to switch to the US approach, learn English, stop calling Soccer "Football", and switch to using imperial measurement instead of the metric system. Oh wait... uh, nevermind :) – jlarson Oct 3 '13 at 15:48
@jlarson oh yeah. let's all measure speed in furlong per fortnight :) – Hazzit Oct 7 '13 at 22:49

I think that if you have fields explicitly labelled "Dollars" and "Euros" then they should only accept the corresponding format. Anything else will be confusing and error-prone.

If you have an input field labelled "Dollars" but you accept a format of "Euros", then that means the label for the field is simply incorrect.

Automatic interpretation is very dangerous in this scenario. With the user input of "1,23" and a non-determined format, you can't be certain that it should be interpreted as "1 + 23/100". What if the user meant to type "1,230"? You would be able to catch that error if you knew the expected format.

share|improve this answer
In the UK and Ireland, we wouldn't write the "2,50€" that you might see in other European countries. We'd write it as "€2.50". The format of the value depends more on the user's locale, not the specific currency. – Brendon Oct 2 '13 at 20:28

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.