JDK1.4を使用しています。
以下のコードを実行しました。

BigDecimal bd = new BigDecimal("99999999999999.99");
DecimalFormat df = new DecimalFormat("#############0.00;-############0.00");
System.out.println(df.format(bd));

実行結果が99999999999999.99となることを予想したのですが、なぜか
99999999999999.98 と表示されてしまいます。
ググってみたのですがなかなか原因が見つからず、もし原因をご存知の方がいらっしゃいましたら、
教えていただけないでしょうか。