Porównywanie liczb, double float

Jun 12, 2019 94 Replies

O ja pie.. To niemozliwe (urban legend?). Przecie to zakrawa na zwykłe nieuctwo :(

AK

I tam. FP w dzisiejszych embeded prockach i kompierach tez sa juz dostepne i moga byc uzywane.

A to ze dzisiaj koprocesor moze szybciej policzyc floaty niz procesor inty.

AK

Swieta racja.

J/w.

Nie, gdyz policzenie nawet zwyklej sredniej moze sie okazac problemem. Moze sie okazac ze obliczenie jej na dwojkowych floatach jest blizsze rzeczywistosci niz na groszach, bcd czy czymkolwiek innym.

AK

i moga dawac gorsze wyniki od obiczen na floatach (w dodatku dajac ułudę pewnosci:).

AK

Nie ma znaczenie jak sa pamietane. Wazne ja sa prezentowane (i porownywane).

AK

Ale nadal 31.8 nie da sie zapisac dokladnie.

Ale musisz umiec dobrac EPS :-)

Wydaje mi sie, ze w bankowosci wiekszosc.

Albo doswiadczony :-)

Akurat patrze na program magazynowy - ma dwie jednostki. Moze np farbe liczyc w litrach, albo w puszkach. Jak puszka ma 3 litry to sie dzieja cuda.

J.

Ale byloby istotne w kwestii wyzszosci liczb float nad fixed czy binary nad bcd :-)

J.

O tyle zaleza, ze jeden format moze miec problem z liczbami typu

31.8, drugi z 5/16, a oba z 1/3.

No i ktorych liczb uzywasz czesciej? Od tego bedzie zalezec, ktory format lepszy :-)

J.

No ale przeciez nie chcesz wiedziec jak floaty sa zapisane :-P

To po takim kursie bediesz mial metlik - pelno ostrzezen o mozliwych bledach i zero rozwiazan :-)

J.

Dnia Tue, 25 Jun 2019 21:53:54 +0200, AK napisał(a):

urban legend mozliwe ... ale ...

Z jednej strony nieuctwo, z drugiej - pewien problem, jak to zrobic dobrze. A wojsko (klient) pewnie nie zostawialo na 4 dni przed testami wlaczonego :-)

J.

W dniu wtorek, 25 czerwca 2019 21:25:33 UTC+2 użytkownik AK napisał:

Nie wiem skąd taki nacisk na ten kurs metod numerycznych, w typowym kursie uniwersyteckim arytmetyka zmiennoprzecinkowa to wykład-dwa, do tego jakieś jedne ćwiczenia/laboratorium. Przez resztę semestru student albo będzie dowodził jakichś wybitnie przykrych oszacowań błędów, albo wymyślał koło na nowo i implementował jakieś kwadratury i interpolacje w losowym języku programowania, w zależności czy to uniwersytet, czy politechnika. Jakieś względnie praktyczne kursy potrafią prowadzić raczej fizycy, tak to zwykle jest jakiś jeden przykład na float, jakiś źle uwarunkowany układ równań liniowych i paskudny wielomian Wilkinsona. Sam mam trochę do czynienia ze studentami i nie uważam, żeby typowy kurs metod numerycznych to była jakaś wiedza objawiona bez której programiści stają się dyletantami.

Pozdrawiam,

Rzeczywistość jaka jest, każdy (zorientowany) wie. A grupowa reakcja wynika po prostu z tego, że każda liszka swój ogon chwali.

Mateusz

Użytkownik kropelka napisał w wiadomości grup dyskusyjnych: snipped-for-privacy@googlegroups.com... W dniu wtorek, 25 czerwca 2019 21:25:33 UTC+2 użytkownik AK napisał:

Zgadzam sie - typowy kurs metod numerycznych to niewiele pomoze. Powiedza troche o reprezentacji, zwroca uwage na wynikle z tego bledy numeryczne, naucza porownywac z zerem (zeby nie dzielic przez zero), powiedza o kolejnosci obliczen ... i przejda na wyzszy poziom.

A juz szczegolnie fizycy - no co, tyle zmierzylismy, tyle wyliczylismy, i co sie nie podoba, ze cena jest 1.999963 ? Taka jest, mozemy sie skupic na szacowaniu błedu pomiaru :-)

Akurat im zazwyczaj drobne bledy nie przeszkadzaja - i tak prawie nigdy nie jest dokladnie.

J.

Hehe, no racja :) Tyle, ze w "moich czasach" nie uczyli o bebechach formatow fp (bo co maszyna to byl inny, ba! nawet bajt na CDC mial 9 bitow;), jeno wlasnie jak ich _dobrze_ uzywac przy takiej wielosci formatow.

PS: Zeb nie bylo, Chwale IEEE754, ale glownie ze wzgledu na ulatwienie (ze wzgledu na ustandaryzowanie) dla tworcow koprocesorow i kompilatorow. Dla uzytkownikow/programistow "stare" zasady pozostaja wciaz w mocy.

AK

IMO - powstal chyba tylko po to, zeby klienci nie narzekali, ze ten sam program (zrodlowy) wykonany na dwoch roznych komputerach daje rozny wynik (z powodu zaokraglen/obciec).

Ale ma jedna zalete - z powodu przyjecia podstawy 2, srednia dwoch liczb jest zawsze pomiedzy nimi. Przy podstawie 10 lub 16 moze byc juz inaczej np 5.008+5.009 = 10.017 -> 1.002e1 .. /2 = 5.010

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required