๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
3 messages
3 total messages Started by Radoslaw Poplawski Wed, 09 Apr 1997 09:17
Zmiennoprzecinkowosc w Javie
#488
Author: Radoslaw Poplawski
Date: Wed, 09 Apr 1997 09:17
17 lines
1112 bytes
Po wykonaniu:

	Float XX = Float.valueOf("32.496");
	float xx = XX.floatValue(); xx = xx*1000;
	System.out.println(xx);
	int czas1=new Float(xx).intValue();
	System.out.println(czas1);

otrzymamy wynik 32.495 (czyli bledny o 0.001). Gdy zamienimy float na
double (i Float na Double) wynik bedzie juz dobry.

W jaki sposob moge okreslic dokladnosc kazdej z powyzszych metod (do
ilu miejsc po przecinku mam gwarancje, ze wynik bedzie wlasciwy)?

Radoslaw Poplawski (Wroclaw) http://yi.com/home/PoplawskiRadoslaw/
MotorCity: http://www.geocities.com/MotorCity/3416/
F1: http://www.geocities.com/MotorCity/3416/f1.html
Re: Zmiennoprzecinkowosc w Javie
#489
Author: Artur Biesiadowski
Date: Wed, 09 Apr 1997 20:42
21 lines
1531 bytes
Radoslaw Poplawski (radekp@usa.net) wrote:
: W jaki sposob moge okreslic dokladnosc kazdej z powyzszych metod (do
: ilu miejsc po przecinku mam gwarancje, ze wynik bedzie wlasciwy)?

Ogolnie float w javie jest 32-bitowy a double 64-bitowy.
Zadna z nich nie gwarantuje ci miejsc po przecinku, tylko ilosc znaczacych
cyfr.
Nie pamietam dokladnie ale chyba dla float to jest 16 bitow na ceche w U2
co wychodzi +-32k. Oczywiscie do odpowiedniej potegi. Tak wiec mozliwe
jest ze wyszedles poza zakres i mantysa z 1 przeskoczyla na 2 i przez to
gubisz jednosc przy zamianach.

Dla double jest juz lepiej, cecha jest chyba ok 40 bitow (???).

Tak wiec dla float licz na okolo 4 dobre cyfry, dla double ok 10 ?
(oczywiscie pamietaj ze to moze byc w roznych potegach)

Jezeli interesuja cie dokladne wartosci, lub dokladne dzialanie zmienncyh
przecinkow to powiedz, przypomne sobie szczegoly i wytlumacze.

Artur
Re: Zmiennoprzecinkowosc w Javie
#490
Author: Radoslaw Poplawski
Date: Tue, 15 Apr 1997 23:13
18 lines
1272 bytes
9 Apr 1997 22:42:09 +0200, abies@sunrise.pg.gda.pl (Artur
Biesiadowski) napisaล‚(a):

[...]
/>Tak wiec dla float licz na okolo 4 dobre cyfry, dla double ok 10 ?
/>(oczywiscie pamietaj ze to moze byc w roznych potegach)

To sie zgadza, przeklamanie o 1 wystapilo, gdy konwertowalem 32496 z
float na int (a wiec przy 5 cyfrach).

/>Jezeli interesuja cie dokladne wartosci, lub dokladne dzialanie zmienncyh
/>przecinkow to powiedz, przypomne sobie szczegoly i wytlumacze.

Dzieki za juz, ale nie chce zameczac. :)

Radoslaw Poplawski (Wroclaw) http://yi.com/home/PoplawskiRadoslaw/
MotorCity: http://www.geocities.com/MotorCity/3416/
F1: http://www.geocities.com/MotorCity/3416/f1.html
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads