Java中的化学平衡器

时间:2010-12-30 12:34:22

标签: java android sdk chemistry

我正在制作一个化学式的应用程序,我已经做到了它,它返回双倍系数。

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

3 个答案:

答案 0 :(得分:4)

使用分数库(如this one by apache)进行计算。它会将计算结果保留为分数。然后,您可以使用Fraction.getDenominator()查找公共系数,并将其余系数乘以它。

答案 1 :(得分:0)

使用合适的类型。在您的情况下,这将是一个不存在的分数类型(在JDK中,Google is your friend)。转到Wikipediamath.stackexchange.com,了解您对它们的了解。

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

答案 2 :(得分:0)

像Aaron所说,理性类型不是Java标准类型。

但是,有一些外部库提供它,就像JScience的Rational类型一样。遗憾的是,没有关于Android平台潜在可用性的信息。如果情况并非如此,请尝试从中获取灵感来创建自己的理性课程。