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?

  • 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
    Commented Oct 2, 2013 at 20:20
  • @cimmanon The input would have a label that denoted the currency.
    – jlarson
    Commented Oct 2, 2013 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
    Commented Oct 2, 2013 at 20:49

2 Answers 2


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.

  • 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
    Commented Oct 2, 2013 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
    Commented Oct 2, 2013 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
    Commented Oct 3, 2013 at 15:48
  • @jlarson oh yeah. let's all measure speed in furlong per fortnight :)
    – Hazzit
    Commented Oct 7, 2013 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.

  • 3
    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
    Commented Oct 2, 2013 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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