3

これは特に奇妙に思われるかもしれませんが、GCJに対していくつかの新しいコードをコンパイルする必要があります。これはJavaのBigDecimalをサポートしていません。

私が探しているのは、java.math.BigDecimalの代替です。

誰かが私を正しい方向に向けることができますか?

ありがとう!

4

1 に答える 1

3

gcj は、setScale(int scale, int roundingMode)およびのみを提供する JDK 1.4.2 に対してコンパイルしているようですsetScale(int scale)

コンパイルしようとしているコードは、JDK 1.5.0 以降用に書かれているようです。JDK 1.5.0 ではsetScale(int newScale, RoundingMode roundingMode)、他の 2 つに加えて取得します。

1.5 を使用できるようにする gcj の更新があるかどうかを確認できます。gcj websiteを見ると、これは当てはまりません。現在のバージョンは「1.4 ライブラリのほとんどに加えて 1.5 のいくつかの追加をサポートする」と書かれています。

もう 1 つのオプションは、 への呼び出しsetScale(int newScale, RoundingMode roundingMode)が に置き換えられるようにコードを書き直すことsetScale(int scale, int roundingMode)です。roundingMode1.5.0 では、 ( で static int を使用して) に整数値を指定する代わりにBigDecimal、enum を使用して指定できますRoundingMode(古い方法は後方互換性のために引き続き維持されています)。

したがって、コードでは、 の代わりにRoundingMode.CEILINGを使用しますBigDecimal.ROUND_CEILING

于 2011-01-25T21:00:59.650 に答える