這可能會特別奇怪,但我必須針對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