在Web表单上输入英制长度测量值

时间:2009-05-29 01:48:02

标签: language-agnostic

我住在澳大利亚并没有太多关于英制长度的测量。

如何让用户在网页上输入英制长度测量值,精度为1/64英寸?我想到了几种方法,但我不知道是否有一种标准的方法,美国建筑行业的用户会习惯。

选项1 一个大的文本框,用户然后输入 5'11“63/64 (5英尺,11.984375英寸),然后我将解析,并以毫米为单位存储在数据库中。

选项2 一个文本框用于英尺,一个文本框用于英寸,一个下拉框用[1 / 64,1 / 32,...,63/64]表示英寸的小数部分,然后存储在数据库中以毫米为单位。

选项3 别的......

4 个答案:

答案 0 :(得分:2)

出于以下原因,我会选择选项2.

  • 它简化了你的编码(这对我来说很重要,本质上是懒惰的。)
  • 它可以让您更好地控制输入内容。
  • 它向用户明确说明他们可以输入什么内容。

如何将其存储在数据库中是您需要决定的事情。毫米不能完美地描述64英寸 ths (至少作为整数),但这对您来说可能不是问题。

我自己的想法是,你应该像要求用户输入那样准确地存储东西,如果你说的话,你确实需要准确度达到1/64 th 一英寸,那就失去了当你必须向用户解释时,将它们放入数据库时​​的准确性并不好。

您可以执行以下操作之一:

  • 将它们存储为64英寸 ths (使5'11“63/64变为5x12x64 + 11x64 + 63或1007)。
  • 将它们存储为浮动(毫米或英寸,由您决定),但在显示时将它们转换回英制。
  • 将它们存储为三个单独的整数字段,英尺,英寸和64英寸英寸。

我自己的偏好会有第一个。它产生一个简单的整数字段,它可以比单独的字段更好地索引,没有精度损失,并且,如果你将所有应用程序测量值转换为64英寸 ths ,然后再将它们与之比较(和当然,将它们插入数据库中,你应该没有问题。

这种转换是一个简单的过程(与公制 - 英制的过程不同)。

答案 1 :(得分:1)

我会找一个脚的文本框和一个英寸的文本框。允许用户将空格分开的小数英寸。请务必提供输入区域附近的使用示例。例如:

[5___] feet, [11 3/4_] inches
Example: [6] feet, [1 1/4] inches

这似乎是自然输入和可解析性之间的良好折衷,因此您不必担心人们用来描绘英尺和英寸的所有可能方法(ft',{ {1}},f等),但人们仍然可以轻松输入他们喜欢的任何单位。

答案 2 :(得分:1)

我赞成保罗·费舍尔的答案,但无论如何我想提供自己的答案,部分是因为我觉得我有超过600个字符的评论要补充。 ;)

我喜欢他的答案似乎至少同样强调为用户提供方便,因为它使程序员的工作变得简单。我相信我们应该尽可能地把用户放在第一位。理想情况下,你可以模拟各种解决方案,并询问实际的建筑行业用户(处理英制单位)试用它们并给你反馈,但现在你要问我们,而不是实际用户。 ..

我也倾向于双场UI。就个人而言,我会让解析器处理小数和小数输入(允许'11 .25'或'11 1/4')。当他们选择不是二进制分数的东西时,你必须弄清楚要做什么,比如5/7(例如,当它们可能意味着5/8时)。

至于存储,我猜你可以用毫米,只要它是一个浮点数。我会更舒服地存储英寸,因为如果你的值都是64英寸的倍数,你就不应该有舍入问题。我同意Pax的意见,能够以英制单位将其交还给用户,并减少分数。 (也许这是我对建筑行业做出的一个重大假设。据我所知,他们将一切正常化到第64位,并且看到'11 16/64'比'11 1/4'更高兴!)

答案 3 :(得分:0)

我不知道这是否属于“答案”,但如果我这样做,我会尝试提供一个英尺或英寸的单个字段,具体取决于预期的范围。

但这可能不够好,在这种情况下,一个用于英尺的字段和另一个用于英寸的字段就足够了。如果有人需要精确,他们可以输入以英寸为单位的小数。