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/