这可能会让人觉得特别奇怪,但我必须针对GCJ编译几个新代码;这不支持Java的BigDecimal。
我正在寻找的是java.math.BigDecimal的替代品。
有谁能给我指个方向吗?
谢谢!
发布于 2011-01-26 05:01:00
看起来gcj是针对JDK1.4.2进行编译的,JDK1.4.2只提供setScale(int scale, int roundingMode)和setScale(int scale)。
您尝试编译的代码似乎是为JDK 1.5.0及更高版本编写的。在JDK1.5.0中,除了其他两个之外,您还可以获得setScale(int newScale, RoundingMode roundingMode)。
您可以查看gcj是否有更新,允许它使用1.5。从gcj website来看,我认为情况并非如此。它说,目前的版本“支持1.4库中的大多数,外加大约1.5个附加库”。
您的另一个选择是重写代码,以便用setScale(int scale, int roundingMode)替换对setScale(int newScale, RoundingMode roundingMode)的调用。在1.5.0中,您可以使用RoundingMode枚举指定整数值,而不是为roundingMode指定整数值(使用BigDecimal中的静态int)(为了向后兼容,仍保留旧方法)。
因此,在您的代码中,您应该使用BigDecimal.ROUND_CEILING,而不是RoundingMode.CEILING。
https://stackoverflow.com/questions/4798592
复制相似问题