1

我正在为化学公式制作一个应用程序,并且我已经完成了它,以便它返回双系数。

例如,C6H12O6 + O2 = CO2 + H2O 返回 0.166666667、1.0、1.0 和 1.0。我想编写代码,使其为 1、6、6 和 6(整数)。此外,对于另一个方程,例如 Ca(OH)2 + H3PO4 = Ca3(PO4)2 + H2O,返回值为 0.5、0.333333333、0.166666667 和 1.0。它应该是 3、2、1 和 6。有没有办法可以将这些转换为 Java 中的整数系数?

4

3 回答 3

4

使用分数库进行计算(例如apache 的这个)。它会将您的计算结果保留为分数。然后,您可以使用它Fraction.getDenominator()来找到常见的系数并将其余系数乘以它。

于 2010-12-30T12:47:04.283 回答
0

就像 Aaron 建议的那样,有理类型不是 Java 标准类型。

但是,有外部库提供它,例如 JScience 及其Rational类型。不幸的是,没有关于 Android 平台潜在可用性的信息。如果不是这样,尝试从中获取灵感,创建自己的理性类。

于 2010-12-30T12:46:22.993 回答
0

使用适当的类型。在您的情况下,这将是一个不存在的分数类型(在 JDK 中,Google 是您的朋友),但是。访问Wikipediamath.stackexchange.com以更新您对它们的了解。

完成平衡后,使用找到所有分母的最小公倍数来获得整数分数。

于 2010-12-30T12:42:56.007 回答