理想情況下,我可以指定類似於10的東西作爲我的輸入(以盎司爲單位),並取回像這樣的字符串:「1 & 1/4杯」。有沒有可以做這種事的圖書館? (注意:我完全沒有這種類似的東西)。有沒有可以將盎司轉換成杯子的庫?
注意:我更喜歡C庫,但對於幾乎任何語言的解決方案我都可以,因爲我可能會找到合適的綁定。
理想情況下,我可以指定類似於10的東西作爲我的輸入(以盎司爲單位),並取回像這樣的字符串:「1 & 1/4杯」。有沒有可以做這種事的圖書館? (注意:我完全沒有這種類似的東西)。有沒有可以將盎司轉換成杯子的庫?
注意:我更喜歡C庫,但對於幾乎任何語言的解決方案我都可以,因爲我可能會找到合適的綁定。
這實際上是兩件事: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單位的面積 - 平方米。然後再進行第二次轉換成所需的轉換。第三個數字是有效數字。
保留這些文件的所需因素,然後您可以從任何區域轉換到您有數據的任何區域。重複對於其他類別的轉換(音量,電源,長度,重量,等等等等)
我的想法是使用谷歌計算器這個任務,如果你想轉換的通用...
例子:http://www.google.com/ig/calculator?q=10%20ounces%20to%20cups - 返回JSON,但我相信你可以指定格式。
這裏的貨幣兌換的Java示例: http://blog.caplin.com/2011/01/06/simple-currency-conversion-using-google-calculator-and-java/
那麼,對於一個快速和骯髒的解決方案,你可以總是有它運行GNU Units作爲外部程序。如果您的軟件與GPL兼容,您甚至可以從單元中剝離代碼並將其用於您的程序中。
請看看JSR 363,計量標準的單位爲Java的:http://unitsofmeasurement.github.io/
至少在C++中你會得到基本的支持通過「值類型」,但您仍然必須自己實現這些轉換,或者找到類似於JSR 363爲Java提供的類似的庫。
我肯定會考慮要求一種特定的編程語言....... – 2011-04-26 17:21:50
這真的很複雜,你需要一個外部庫?我的意思是,你所做的只有八分之一...... – alternative 2011-04-26 17:25:47