I could simply ask the user to type the number in, and then validate that the number is a multiple of 100K and between 100K and 1B, presenting an error message if not. I could strip out any commas that are there as one small improvement.

Are there any ways to improve this? Should I allow the user to enter numbers with a K, M, or B suffix (case insensitive of course) so they could enter numbers like 100K? But then I'd have to provide documentation on how to do that and I'm not sure if I'm really helping?

Should I use a numeric spinner control with appropriate range and step?

Is there a slider control that would work?

  • 1
    Is there a reason you want 100k increments? 100k to 200k is a 100% increase, while 10 mil to 10.1 is merely a1% increase. Jul 7, 2017 at 18:57
  • My Product Requirements Document calls for a numeric input field that can accept numbers like this in 100K increments. It's how this system is designed.
    – Danger
    Jul 7, 2017 at 18:59
  • Something like this seems perfectly usable to meet these requirements, assuming your users have adequate screen sizes to be able to select accurately. Since there are only 10 steps, I think that'd be just fine. Certainly, you'd want to make it look good, add commas to the values, etc... Jul 7, 2017 at 19:47
  • Woah, wait a minute.. Thought that said 100K - 1M... Yeah, that won't work, hahha. Jul 7, 2017 at 19:48
  • I think the best and faster approach is to let the user enter the number in an input field, just as you say, and then validate. You could provide buttons like "up 100k", "up 1M", "up 10M" (and down, of course), but you won't save any effort and the cognitive load will be really high. Sometimes simple is the best way to go
    – Devin
    Jul 7, 2017 at 22:45

3 Answers 3


I would use a numeric log-scaled slider, with a smallest step size of 100k:


download bmml source – Wireframes created with Balsamiq Mockups

And my rule for sliders is to always offer a "linked" text box that allows entry of numbers via tab/keyboard for users who prefer that to the slider widget.

  • how would the slider work? for example, if value is 200k
    – Devin
    Jul 7, 2017 at 23:53
  • 1
    It would not be precise enough to hit every value via dragging, but you could get very close to your desired value. If you needed to refine it, you would use the corresponding text box that would have data validation to limit it to 100k increments. Actually, I'm thinking the ticks should be evenly spaced, so more pixels are given to lower values.
    – J. Dimeo
    Jul 7, 2017 at 23:56
  • got it. wasn't sure based on the mockup
    – Devin
    Jul 7, 2017 at 23:57
  • 2
    That makes sense if it's some kind of calculator where you're playing with different values to see how the input affects the output. At least initially, the ability to change the value with minimal effort and get rapid feedback is more important than the ability to enter a precise value. As you said, there still needs to be a linked text box to makes precise input possible and provide an alternative for users who can't manipulate the slider easily. Jul 8, 2017 at 12:37

The easiest way to enter a number is to type it. Provide a simple text box where they can type the number.

Suffixes can work, but keep in mind:

  • The largest possible value is 1 billion so the B suffix isn't really needed.
  • M is the roman numberal for thousand and it's often used as a suffix for thousand. (MM is million.) That can be confusing.

Without knowing more about your users I would just use a text box with a description like this:

Enter a number in millions between 0.1 (one hundred thousand) and 1000 (one billion). The value must be an increment of 0.1 million (one hundred thousand).

The text box should allow up to one decimal place and ignore input that would add a second decimal place.

  • 1
    Do you have an actual example of M being used as a suffix that does not mean million / mega? B for billion could be more problematic internationally, because milliards are still a thing in many places, but you rightfully notice that we are better speaking of a range from 0.1 through 1000 million here.
    – Crissov
    Jul 8, 2017 at 12:38
  • I've seen it in finance in the US. I couldn't find any standard though. Everyone seems to have their own opinion. english.stackexchange.com/questions/149190/… Jul 8, 2017 at 12:47

Would something like this do the job?

In this example, the first five digits are dropdowns where the user can select a number from 0 to 9, and the second 5 are disabled fixed at zero

enter image description here

Alternatively, simply have 5 input boxes which can each take a maximum of a single character, use some client side script to prevent non numeric entry and validation before submission

enter image description here

  • While this is really creative, the novelty factor might make it non-intuitive
    – J. Dimeo
    Jul 7, 2017 at 23:45
  • @J.Dimeo I'm curious what makes you consider this to be novelty. I hadn't really seen it like that. If necessary the second option could easily be set to focus on the next digit box after each one is entered. And each one could default to zero. It could be made very intuitive imo
    – Darren H
    Jul 8, 2017 at 3:41
  • This is like splitting a phone number into multiple fields. It's aggravating, because it requires extra keystrokes to tab to each field. You could automatically move focus to the next field, but that's also aggravating and confusing because it breaks a very common convention. Jul 8, 2017 at 12:53

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.