是否有一个图书馆可以将盎司兑换成杯子?

时间:2011-04-26 17:19:59

标签: units-of-measurement

理想情况下,我可以指定类似于10的输入(以盎司为单位)并返回如下字符串:“1& 1/4杯”。有没有可以做这样的事情的图书馆? (注意:对于像这样的隐含的舍入,我完全没问题。)

注意:我更喜欢C库,但我可以使用几乎任何语言的解决方案,因为我可以找到合适的绑定。

4 个答案:

答案 0 :(得分:1)

如果您想要通用转换,我的想法是使用Google Calculator执行此任务...

示例: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/

答案 1 :(得分:1)

好吧,对于快速而肮脏的解决方案,您可以始终将其作为外部程序运行GNU Units。如果您的软件兼容GPL,您甚至可以从单位中删除代码并在程序中使用它。

答案 2 :(得分: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单位的面积 - 平方米。然后进行第二次转换为所需的转换。第三个数字是有效数字。

为所需因素保留这些文件,然后您可以从任何区域转换为您拥有数据的任何区域。重复其他类别的转换(音量,功率,长度,重量等等)

答案 3 :(得分:0)

请查看JSR 363,Java测量标准单位:http://unitsofmeasurement.github.io/

至少在C ++中,您可以通过"值类型获得基本支持"已经,但您仍然必须自己实现这些转换,或者找到一个类似于JSR 363为Java提供的类型的库。