Java BigDecimal替代库

Java BigDecimal替代库,java,bigdecimal,gcj,Java,Bigdecimal,Gcj,这可能显得特别奇怪,但我必须针对GCJ编译几个新代码;它不支持Java的BigDecimal 我要寻找的是java.math.BigDecimal的替代品 谁能给我指出正确的方向吗 谢谢 看起来gcj是针对JDK1.4.2进行编译的,JDK1.4.2只提供setScale(int scale,int roundingMode)和setScale(int scale) 您试图编译的代码似乎是为JDK1.5.0及以上版本编写的。在JDK1.5.0中,除了其他两种模式之外,还可以使用setScale(

这可能显得特别奇怪,但我必须针对GCJ编译几个新代码;它不支持Java的BigDecimal

我要寻找的是java.math.BigDecimal的替代品

谁能给我指出正确的方向吗


谢谢

看起来gcj是针对JDK1.4.2进行编译的,JDK1.4.2只提供
setScale(int scale,int roundingMode)
setScale(int scale)

您试图编译的代码似乎是为JDK1.5.0及以上版本编写的。在JDK1.5.0中,除了其他两种模式之外,还可以使用
setScale(int-newScale,RoundingMode-RoundingMode)

您可以查看gcj是否有更新,允许它使用1.5。从目前的情况来看,我认为情况并非如此。它说,当前版本“支持大多数1.4库以及一些1.5添加项。”

您的另一个选项是重写代码,以便将对
setScale(int-newScale,RoundingMode-RoundingMode)
的调用替换为
setScale(int-scale,int-RoundingMode)
。在1.5.0中,您可以使用
roundingMode
枚举指定它,而不是为
roundingMode
指定整数值(使用
BigDecimal
中的静态整数)


因此,在您的代码中,您将使用
BigDecimal.ROUND\u-CEILING
,而不是
RoundingMode.CEILING
,GCJ到底是什么?如果它不支持标准Java API的某些部分,您如何确定它会支持您的新库?您确定gcj不支持标准Java API的某些部分吗?这听起来更像是一个库问题,而不是gcj的问题。@Nikita gcj是用于Java的Gnu编译器——这实际上是一个麻烦,我真的不知道它是否支持新库,但它是否完全封装(新库)而且只使用Java 1.4语法,我可能是安全的。@Frankie gcj的哪个版本?从许可的角度来看,从Apache Harmony中删除代码可能更好。Vivin工作得很好。必须做些改变,但效果很好。谢谢@弗兰基,没问题。请原谅我最初的怀疑。我没怎么用过gcj,所以我不知道这是多么痛苦!