Java BigDecimal альтернативная библиотека - PullRequest
2 голосов
/ 25 января 2011

Это может показаться странным, но я должен скомпилировать несколько новых кодов для GCJ;который не поддерживает Java BigDecimal.

Я ищу альтернативу java.math.BigDecimal.

Может кто-нибудь указать мне правильное направление?* Спасибо!

1 Ответ

3 голосов
/ 26 января 2011

Похоже, что gcj компилируется с JDK 1.4.2, который предоставляет только setScale(int scale, int roundingMode) и setScale(int scale).

Код, который вы пытаетесь скомпилировать, кажется, был написан для JDK 1.5.0 и выше. В JDK 1.5.0 вы получаете setScale(int newScale, RoundingMode roundingMode) в дополнение к двум другим.

Вы можете увидеть, есть ли обновление для gcj, которое позволяет ему использовать 1.5. Посмотрев на сайт gcj , я не вижу в этом никакого смысла. В нем говорится, что текущая версия «поддерживает большинство библиотек 1.4 плюс некоторые дополнения 1.5».

Другой вариант - переписать код, чтобы вызовы setScale(int newScale, RoundingMode roundingMode) были заменены на setScale(int scale, int roundingMode). В 1.5.0 вместо указания целочисленного значения для roundingMode (используя статические целые числа в BigDecimal) вы можете указать его с помощью перечисления RoundingMode (более старый метод все еще поддерживается для обратной совместимости). *

Таким образом, в вашем коде вместо RoundingMode.CEILING вы бы использовали BigDecimal.ROUND_CEILING.

...