Ahojte, 2011/2/8 Libor Jelinek <ljeli...@virtage.com>: > To znamená, že bych měl na double a float provždy zapomenout a všechno > nahradit třídou BigDecimal (jak doporučuje Oráclí Java Tutorial)?
Nahradit jen tam, kde presnost potrebujete (fakturace apod.). Kdyz ale muzete malou odchylku zanedbat a jde vam o rychlost (napr. resite matematicke nebo graficke ulohy) na BigDecimal zapomente a pouzijte primitivni typy (float, double). Jinak pro otestovani desetihalerove aritmetiky s typem float muzete zkusit: float halere = 0f; for (int i = 1; i <= 1000000; i++) { halere += 0.1f; if (i % 1000 == 0) { System.out.println(i / 10 + "~" + halere); } } Na mem openjdk-6 to zacina: 100~99.99905 a konci to 100000~100958.34 Za tyto pocty by vam asi zakaznici moc nepodekovali. :-) -- pepa cacek