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/

Odpovedet emailem