> Nemate tuseni proc se v JAVA napriklad 39.9 / 10 = 3.9899999999999998? > > Potrebuji cislo zaokrouhlit napr. na dve desetina mista. Puziji > jednocuchy vzorec Math.round(cislo * 100) / 100 bohuzel konkretne u > cisla zmineneho vise to nejak nevychazi. Nevite co s tim?
Záleží na tom, k jakému účelu potřebuješ číslo zaokrouhlit. Je-li to jenom proto, aby se hezky vytisklo, je výhodnější se o zaokrouhlování nestarat a přenechat starost o vzhled čísla formátovacímu objektu. Použiješ-li místo System.out.println( 39.9 + " / " + 10 + " = " + 39.9/10 ); formátovaný výstup System.out.printf( "%.1f / %d = %.2f", 39.9, 10, 39.9/10 ); budeš mít po starostech - vytiskne se 39.9 / 10 = 3.99 Metoda printf ale funguje až od Javy 5.0 - u starších verzí musíš použít trošku komplikovanější metody formátování. Potřebuješ_li z nějakého důvodu s takto zaokrouhlaným číslem opravdu počítat, musíš si ujasnit, jestli ti opravdu ta chyba někde na 14. desetinném místě vadí - pak použij např. BigDecimal, nebo jestli tě to jenom obtěžuje při debugování - pak se na to vykašli. -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.375 / Virus Database: 268.0.0/267 - Release Date: 22.02.06 st
