2011-04-26 14 views
1

理想情況下,我可以指定類似於10的東西作爲我的輸入(以盎司爲單位),並取回像這樣的字符串:「1 & 1/4杯」。有沒有可以做這種事的圖書館? (注意:我完全沒有這種類似的東西)。有沒有可以將盎司轉換成杯子的庫?

注意:我更喜歡C庫,但對於幾乎任何語言的解決方案我都可以,因爲我可能會找到合適的綁定。

+2

我肯定會考慮要求一種特定的編程語言....... – 2011-04-26 17:21:50

+2

這真的很複雜,你需要一個外部庫?我的意思是,你所做的只有八分之一...... – alternative 2011-04-26 17:25:47

回答

1

這實際上是兩件事:1)包含轉換的數據,2)轉換的表示。

第二個是用戶選擇:如果你想分數,你需要寫或得到一個分數庫。有許多。

第一個很簡單。絕大多數轉換隻是一個因素。通常你會組織的已知因素考慮轉換到相應的SI單位來表示該類型轉換(體積,長度,面積,密度等)的

你的數據,那麼看起來是這樣的:

A acres 4.046870000000000E+03 6 
A ares 1.000000000000000E+02 15 
A barns 1.000000000000000E-28 15 
A centiares 1.000000000000000E+00 15 
A darcys 9.869230000000000E-13 6 
A doors 9.290340000000000E+24 6 
A ferrados 7.168458781362010E-01 6 
A hectares 1.000000000000000E+04 15 
A labors 7.168625518000000E+05 6 
A Rhode Island 3.144260000000000E+09 4 
A sections 2.590000000000000E+06 6 
A sheds 1.000000000000000E-48 15 
A square centimeters 1.000000000000000E-04 15 
A square chains (Gunter's or surveyor's) 4.046860000000000E+02 6 
A square chains (Ramsden's) 9.290304000000000E+02 5 
A square feet 9.290340000000000E-02 6 
A square inches 6.451600000000000E-04 15 
A square kilometers 1.000000000000000E+06 15 
A square links (Gunter's or surveyor's) 4.046900000000000E-02 5 
A square meters (SI) 1.000000000000000E+00 15 
A square miles (statute) 2.590000000000000E+06 7 
A square millimeter 1.000000000000000E-06 15 
A square mils 6.451610000000000E-10 5 
A square perches 2.529300000000000E+01 5 
A square poles 2.529300000000000E+01 5 
A square rods 2.529300000000000E+01 5 
A square yards 8.361270000000000E-01 6 
A townships 9.324009324009320E+07 5 

在每種情況下,這些都是面積轉換成SI單位的面積 - 平方米。然後再進行第二次轉換成所需的轉換。第三個數字是有效數字。

保留這些文件的所需因素,然後您可以從任何區域轉換到您有數據的任何區域。重複對於其他類別的轉換(音量,電源,長度,重量,等等等等)

1

那麼,對於一個快速和骯髒的解決方案,你可以總是有它運行GNU Units作爲外部程序。如果您的軟件與GPL兼容,您甚至可以從單元中剝離代碼並將其用於您的程序中。

0

請看看JSR 363,計量標準的單位爲Java的:http://unitsofmeasurement.github.io/

至少在C++中你會得到基本的支持通過「值類型」,但您仍然必須自己實現這些轉換,或者找到類似於JSR 363爲Java提供的類似的庫。

相關問題