Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

(Note: I'm more a backend developer, so please forgive my lack of UX terminologies. Don't hesitate to edit the text or the tags)

We are working on an online scientific software with specific constraints about numeric inputs:

  • Inputs are made in a sort of treegrid. There are a few columns, and only 1 or 2 with numeric input
  • On very close rows, figures can be extremely heterogeneous. The user can enter "1 000" in one row, "2,2435e-13" on the next one, then "0.037", then "6,62355e9" on the fourth row, and so on
  • Even if the software is a scientific software, sometime the user entering some data doesn't have a scientific background
  • Data are sometime copy/pastes from an external computation, and can be something like "2.234234567456e-6"
  • The software is international, and numerical values display are really different. A French user may try to input "1 453,23", in Switzerland something like "5 234.43". Some other countries use other thousand separators
  • Our computations don't need exact data. User inputs can be stored as floating point numbers.

My main question is "Are there some UX patterns about scientific numerical data input?"

More specific questions are:

  • Should we display numbers exactly like they were entered? Even if they are heterogeneous and if two users sharing the same data use different locales ? If yes, how are we supposed to handle the input validation?
  • Should we display all numbers in scientific notation? Even if we can have "1", "10", or "0.1"? Or should we have more complex rules about when to display in which format?
  • Should we offer a feature to customize the number formatting? If yes, what would be the default values, and how not to have a too complex customisation?
  • Should we care about the locale, or should we force the user to use a determined convention ?
  • Or maybe should we permit to enter the values in any locale, and display them using a convention ? In this case, how to deal with a user updating an existing value ? Should be convert this value to the user locale ?
  • Is the lack of precision an UX issue if we decide to store the values as floating point number ? E.g. is it an issue if we convert 1'000'000'000'000'123.3543 to 1e15 ? (Not an issue in our computations for now)
share|improve this question
add comment

2 Answers 2

up vote 3 down vote accepted

Interesting question.

The only UX pattern you have for the input part, is "forgiving input". Ie, let the user enter whatever he/she wants, and try to understand what the value actually is.

To do this, you must establish a set of interpretation rules and you must analyze ambiguous situations. You can, for example, trim all blank spaces without any consequences (that I'm aware of), and you can safely interpret "2+2" as 4. "1.234", however is ambiguous, and you need to decide whether the user must clarify what he/she means, and/or if the interpretation rules should be followed in a specific order. (eg the localization settings, previous clarifications etc).

You should play with Wolfram|Alpha. They interpret the input and gives you suggestions in a drop down list to reduce ambiguity, and they give you several outputs if the input could be interpreted in several ways.

enter image description here

When it comes to output/visualization. It really depends on the context. It the user are comparing the values, then they should be displayed with the same significance. If the user should be able to locate their inputs - or if they have a meaning of how their value should be represented, then it's nice to have it the ways it was entered.

In a situation with a very forgiving input, I would recommend to convert the values to a common standard. With local format settings.

And you could have both, of course...

mockup

download bmml source – Wireframes created with Balsamiq Mockups

share|improve this answer
    
Thanks for this great answer ! One last question, what to do in case of very small, very high values, and basic figures at the same time (like 2.4513e-10; 5.1e10; and 100), and the context is global comparison (what is huge and what is negligeable) ? Should put everything in scientific notation ? Or, as we have units in the software, put every figures in an easily readable format ( e.g. 123.456 ) and change the unit (plus having a color code for units to directly see what is big) ? Thanks again ! –  cporte Jan 18 '13 at 7:53
add comment

Adding to Jorn's great answer, will your users be a more or less stable group of people, or will you have new ones installing and adding numbers?

If users use the software repeatedly, you could incorporate some basic setup when it is first launched. For example, the first time someone enters a value, you could have a box showing some recommended formatting: "Please don't use separators such as 3.000", or if someone enters 3,14 you could prompt a dialog asking: "Did you mean 3 decimal 14" or something like that.

share|improve this answer
add comment

Your Answer

 
discard

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.