We're developing a feature for our system that allows to relate a certain cost to an hour of working time under a category. So the user will be able to set that a working hour of the category 'IT Support' may costs $1000.

The issue here is that I don't know which is the best way to let the user define the currency they want to use. The cost of the working hours are going to be shown in Excel reports and in a register in a history view.

It has occurred to me that maybe it would be fine if we let the user write the symbol/abbreviation they want to use and then they will have to decide if they want it as a prefix o a suffix. This means we wouldn't use a currency selector.

We have users all around the world.

We have the same problem with thousands and decimal separators. Should we let the user write which separator do they wnat for thousands and wich one for decimals?

  • What is the range of numbers that will be used? So say -1000 till 1000 or -1,000,000 till 1,000,000 and what about an integer. (Note: Not sure if integer is the correct word in English but I mean the value after the 0 so the 34 in 0.34.).
    – Kevin M.
    Oct 8, 2018 at 14:28
  • No negative values are going to be used. And as we are talking about costos, integer and decimal values are included as well. Oct 8, 2018 at 14:37
  • I suggest you search for any standard. Surely there's an ISO recommendation, a list of currencies, the decimal sign and tje symbol placement. I'm not at my computer right now, but I used an ISO currency list in the past.
    – roetnig
    Oct 8, 2018 at 20:56
  • Sounds like life would be a lot easier just keeping it all in USD. Is that an option?
    – Source
    Oct 9, 2018 at 4:45
  • I would love to do that, but sadly it's not an option :( Oct 9, 2018 at 16:16

2 Answers 2


The way Expensify works is by using a dropdown, and setting a default based on the user's locale. It'll then use the last used currency when creating a new item.

You should not use a regular input, as they are vulnerable to typos, and non-standard options.

Expensify image


Usually every OS has culture settings that you can detect. This would be a good start for getting a sensible default for the decimal and thousand separators, and the default currency to use.

It would be a good idea to provide a central place in the app / website where users have an option to override this default culture. This override should be individual to the user.

  • The system is a web application. So, we have to get the data from the browser, because the server is in another location. Oct 8, 2018 at 14:46
  • @MicaelaOriolo Browsers usually provide culture information that you can detect for language, date, and currency settings. They get this information from the OS of the user.
    – Franchesca
    Oct 8, 2018 at 14:50
  • 1
    And suppose I'm in Argentina but I want to express the cost in dollars... I'll let the user personalize this but, which separators should I use? Oct 8, 2018 at 15:20
  • @MicaelaOriolo The culture settings for Argentina should imply a default thousand separator. You can use this, and then allow the user to override it in the settings if they need to see something else.
    – Franchesca
    Oct 9, 2018 at 9:37
  • A proper culture-aware formatting library is probably worth looking at... for instance, Indian separators go every second digit after the first three: 1,000 then 1,00,000 then 1,00,00,000. See Wikipedia
    – TripeHound
    Dec 10, 2018 at 15:47

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.