2009-05-29 63 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'!)