A kdyz pouziju BigDecimal, tak je nejaka prima rychla cesta?


On Mon, 18 Jun 2007 14:42:36 +0200, Ján Valkovič <[EMAIL PROTECTED]> wrote:

Roman Strobl  wrote / napísal(a):
Ján Valkovič wrote:
Ahoj,
neviem, co sa ti viac hodi, mne sa viac paci napad so so
StringTokenizer-om, ale aj tento sposob ako rozdelit float na celu a
desatinnu cast mozno pomoze :-)

    public static void main(String[] args) {
        float cena = new Float(28.836);
        int celaCast = (int)cena;
        float desatinnaCast = cena - new Float(celaCast);

        System.out.println("Cena:" + cena);
        System.out.println("Cela cast:" + celaCast);
        System.out.println("Desatinna cast:" + desatinnaCast);
    }

Vystup:
    Cena:28.836
    Cela cast:28
    Desatinna cast:0.83600044

len neviem preco je desatinna cast 0.83600044 :-)

Protoze pracujes s realnymi cisly, ktere nemusi byt 100% presne :)

Pokud vyzadujes lepsi presnost, jsou na to matematicke knihovny (viz
BigDecimal apod.).

-Roman

Aha, myslel som si, ze float ma vyssiu presnost, s double som to
neskusal, tam by asi ta nepresnost bola dalej :-)
S BigDecimal som sa uz stretol, vyraz ako ((a-b) * c)/d sa zapisuje
zhrubatakto ((a.sustract(b)).multiply(c)).divide(d) a to som tam este
nedaval |MathContext
<http://java.sun.com/j2se/1.5.0/docs/api/java/math/MathContext.html> a
test an delenie 0,uz nech vydaju jdk7 :-)

ya
|




--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Odpovedet emailem