1

化学式用のアプリを作っており、2倍の係数を返すように作っています。

たとえば、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でこれらを整数係数に変換する方法はありますか?

4

3 に答える 3

4

分数ライブラリを使用して計算を行います (このような apache によるもの)。計算結果を分数として保持します。次に、 を使用Fraction.getDenominator()して共通のものを見つけ、それを残りの係数に掛けることができます。

于 2010-12-30T12:47:04.283 に答える
0

適切なタイプを使用してください。あなたの場合、それはまだ存在しない分数型になります(JDKでは、Googleがあなたの友達です)。ウィキペディアまたはmath.stackexchange.comにアクセスして、それらに関する知識を更新してください。

バランシングを行った後、整数の分数を取得するには、すべての分母の最小公倍数を検索するを使用します。

于 2010-12-30T12:42:56.007 に答える
0

Aaron が示唆するように、有理型は Java 標準の型ではありません。

ただし、JScience とそのRational型のように、それを提供する外部ライブラリがあります。残念ながら、Android プラットフォームが利用可能になる可能性についての情報はありません。そうでない場合は、そこからインスピレーションを得て、独自の合理的なクラスを作成してみてください。

于 2010-12-30T12:46:22.993 に答える