Místo System.out.println(zaokruhli(new
BigDecimal(999999999999999.935)));
použijte:
System.out.println(zaokruhli(new BigDecimal("999999999999999.935")));
Takhle dochází ke konverzi na double a následně na BigDecimal.
Stevlik Marian píše v Pá 06. 06. 2008 v 15:06 +0200:
> Mam problem so zaokruhlovanim BigDecimal, kt. ma viac ako 12 cifier
> vid priklad:
>
> private static BigDecimal zaokruhli(BigDecimal cislo) {
> return cislo.setScale(2, BigDecimal.ROUND_HALF_DOWN);
> }
>
> public static void main(String[] args) {
> System.out.println(zaokruhli(new
> BigDecimal(999999999999.935))); // 999999999999.94 [Ok]
> System.out.println(zaokruhli(new
> BigDecimal(999999999999999.935))); // 999999999999999.87 [Zle]
> System.out.println(zaokruhli(new
> BigDecimal(999999999999999.975))); // 1000000000000000.00 [Zle]
> }
>
> Nieco som si neuvedomil, alebo je to bug?
>
> Vopred dakujem za vase odpovede
>
> Michal
Petr Ferschmann
--
SoftEU s.r.o.
Lochotínská 18, 301 00 Plzeň, Česká republika
Phone: +420 371 124 384, +420 775 638 008
E-mail: [EMAIL PROTECTED] http://www.softeu.com/