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
|

Odpovedet emailem