Jak na funkci arc sinus v shellu ?

Petr Novotny Petr.Novotny na antek.cz
Pondělí Srpen 16 10:30:27 CEST 1999


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> Kazdopadne jsem narazil na zajimavou vec prave s funkci asin (acos).
> Mam promennou float kterou v cyklu zvysuju o 0.02 . A kdyz je v te
> promenne 1.000000 tak asin na tom chcipne - vypise +NAN . Kdyz si tu
> promennou vytisknu - pres printf("%f") tak vypise 1.000000 . Kdyz
> zadam asin(1.000000) tak to funguje - vrati to Pi. Neni to divne ??
> Zda se ze kdyz dam do promenne float nulu a pak k ni padesatkrat pripoctu
> 0.02 tak nedostanu jedna ale trochu vic ?!@ Ani cyklus na to nefunguje -
> kdyz zapisu :
> 
>   float i;
>   for(i = 0.0; i <= 1.0; i += 0.02){ printf("%f\n", i) }
> 
> tak to i 1.000000 uz nevypise. Kdyz to zmenim na :
> 
>   for(i = 0.0; i <= 1.001; i += 0.02){ printf("%f\n", i) }
> 
> tak to posledni hodnotu i vypise jako 1.000000 ale asin na tom chcipne .

Vitejte ve svete pocitacu. Musite se smirit s tim, ze float (anebo 
double) jsou je pro nektere hodnoty presne. Pro vetsinu hodnot 
jsou ty hodnoty zaokrouhlene (useknute). Cislo 1.0 vyjadrite v 
double/float presne. Myslim, ze cislo 0.1 nikoliv.

Zkuste si od te posledni hodnoty odecist 1.0000 presne a 
vytisknout si vysledek - asi uvidite, co se deje. (Dalsi moznost je v 
tom printf dat format %a.bf kde a a b jsou cislice - pocet tistenych 
znaku.)

Nektera Ccka podporuji ruzne varianty _matherr(), kde specifikujete 
callback, ktery zpracovava pripadne chyby.

Je potreba argumenty do funkci asin, acos, sqrt apod. kontrolovat, 
zda se jen o EPSILON nelisi od hranicni hodnoty definicniho oboru, 
a pro tyto mezni hodnoty vracet primo spravnou hodnotu (jako treba 
0 nebo PI/2). Hodnota EPSILON je hodne empiricka. Zalezi hodne 
na tom, co predtim pocitate, jak a v jake presnosti.


Prijemnou zabavu...

-----BEGIN PGP SIGNATURE-----
Version: PGP 6.0.2 -- QDPGP 2.60 
Comment: http://community.wow.net/grt/qdpgp.html

iQA/AwUBN7fMI1MwP8g7qbw/EQKsQgCfUL/irGFIiTmOjlKymonv7m/6LzcAn3rf
CZ3qJ21kBj2EwdQmXi+Y8vaa
=hrkL
-----END PGP SIGNATURE-----
--
Petr Novotny, ANTEK CS
Petr.Novotny na antek.cz
http://www.antek.cz
PGP key ID: 0x3BA9BC3F
-- Don't you know there ain't no devil there's just God when he's drunk.
                                                             [Tom Waits]


Další informace o konferenci Linux