2009-05-29 66 views
1

我住在澳大利亚,对于英制长度测量没有太多处理。在网页上输入英制长度测量结果

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

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

选项2 一个用于脚文本框中,英寸一个文本框和一个下拉框与[1/64,1/32,...,63/64]为英寸的小数部分,然后以毫米存储在DB中。

选项3 别的东西...

回答

2

我会去选项2的原因如下。

  • 它简化了你的编码(对我来说这是一个很大的问题,本质上是懒惰的)。
  • 它可以让您更好地控制输入内容。
  • 它向用户清楚他们被允许进入的内容。

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

我自己的想法是,你应该存储的东西准确,你要求用户输入,如果,如你所说,你真的需要一英寸的精度1/64,当你必须向用户解释它时,它们在数据库中并不会很好。

你可以这样做的一个:

  • 他们店64个部份英寸(这样5'11" 63/64变成5x12x64 + 11x64 + 63,或1007)的
  • 。将它们存储为浮动(毫米或英寸,取决于你),但它们转换回帝国显示它们时。
  • 将它们存储为三个独立的整数字段,英尺,英寸和64个部份英寸

我自己的喜好会有第一个。它的结果是一个简单的整数字段,它可以被索引得比单独的字段好得多,不会损失准确性,并且只要在将所有应用程序的度量值与(和插入它们之间)进行比较之前将其转换为一英寸当然)数据库,你应该没有问题。

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

0

我不知道这是否符合“答案”的条件,但如果我要这样做,我会尽量只提供一个英尺或英寸的场地,具体取决于预期的范围。

但是这可能不够好,在这种情况下,一个英尺的领域和另一个英寸的领域应该足够了。如果有人需要精确,他们可以输入英寸中的小数点。

+0

英寸是以分数衡量的,而不是小数,并且试图强制另一个约定(无论多么理智)对用户来说是相当差的UI。显然这个问题需要精确,考虑到OP要求1/64英寸的精度。 – derobert 2009-05-29 03:03:18

1

我会去脚的文本框和英寸的文本框。允许用户将分数英寸分隔空间。请务必在输入区域附近提供使用示例。例如:

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

这似乎是自然输入和parseability之间的良好折衷,所以你不必担心所有的人用它来描绘英尺和英寸(ft'f可能的方法, -等),但人们仍然可以轻松地输入任何他们想要的单位。

1

我很喜欢Paul Fisher的回答,但我想提供我自己的回答,部分原因是因为我觉得我有超过600个角色的评论值得补充。 ;)

我喜欢他的回答似乎至少同样重视让用户容易,因为它为编程人员提供了方便。我相信我们应该尽最大努力为用户提供服务。理想情况下,您可以制作各种解决方案的模型,并询问实际的建筑行业用户(与皇家单位打交道的人)尝试并提供反馈,但现在您问我们,而不是实际用户。 ..

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

至于存储,我想你可以用毫米去,只要它是一个浮点数。我会更舒适地存储英寸,因为如果您的价值都是英寸的六分之一的倍数,您不应该有四舍五入的问题。我同意Pax的观点,重要的是能够以英制单位将其交还给用户,并减少分数。 (也许这是我对建筑行业的一个很大的假设,就我所知,他们把所有东西都标准化为64ths,并且比'11 1/4'更高兴地看到'11 16/64'!)