这可能会特别奇怪,但我必须针对GCJ编译几个新代码;不支持Java的BigDecimal。Java BigDecimal替代库
我在找的是java.math.BigDecimal的替代方法。
任何人都可以指向正确的方向吗?
谢谢!
这可能会特别奇怪,但我必须针对GCJ编译几个新代码;不支持Java的BigDecimal。Java BigDecimal替代库
我在找的是java.math.BigDecimal的替代方法。
任何人都可以指向正确的方向吗?
谢谢!
看起来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 website,我不认为这是事实。它说目前的版本“支持大多数1.4库加1.5左右的增加。”
您的其他选项是重写代码,以便setScale(int newScale, RoundingMode roundingMode)
的调用被替换为setScale(int scale, int roundingMode)
。在1.5.0中,您可以使用RoundingMode
enum(旧方法仍保持向下兼容)来指定它,而不是指定roundingMode
的整数值(使用BigDecimal
中的静态整数)。
因此,在您的代码中,而不是RoundingMode.CEILING
,您可以使用BigDecimal.ROUND_CEILING
。
GCJ究竟是什么?如果它不支持标准Java API的某些部分,那么您如何确定它会支持您的新库? – 2011-01-25 20:43:40
您确定gcj不支持*标准* Java API的某些部分吗?这听起来更像是一个图书馆问题,与gcj的问题。 – 2011-01-25 20:45:28