eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Porównywanie liczb, double float
Ilość wypowiedzi w tym wątku: 120

  • 111. Data: 2019-07-22 09:47:27
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu wtorek, 18 czerwca 2019 08:32:55 UTC+2 użytkownik Mateusz Viste napisał:
    > On Tue, 18 Jun 2019 01:33:06 +0200, Piotr Wyderski wrote:
    > > Właśnie o tę teorię chodzi, wtłoczoną bez oglądania się na straty na
    > > psychice. Wielokrotnie widziałem ten efekt w praktyce: inteligentna
    > > osoba bez wykształcenia kierunkowego bardzo sprawnie radziła sobie z
    > > obsługą narzędzi i realizowaniem zadań na średnim poziomie złożoności.
    > > Jeśli złożoność problemu podskoczyła tylko o epsilon, to ci ludzie
    > > momentalnie odpadali. Nie "mieli trudności", dosłownie odpadali.
    >
    > Coś mi to pachnie uczelnianą propagandą.
    >
    > Mi zdarzyło się obserwować efekt całkiem odwrotny: samouk i magister łeb
    > w łeb. Nagle problem. Samouk, nauczony życiem, zaparł się i zrobił -
    > wszak sam doszedł z A do B, więc samodzielna droga z B do C to żadna
    > nowość, tylko kwestia czasu żeby zrozumieć i wykombinować co i jak.
    > Magister natomiast tylko wytrzeszcza oczy i z rozbrajającym wzrokiem mówi
    > "ale tego na studiach nie było".
    >
    > Moja wersja jest być może lekko podkoloryzowana - ale z pewnością nie
    > mniej niż twoja.
    >
    > Z mojego doświadczenia wynika, że te wszelkie magistry od IT lepiej
    > spożytkowaliby czas poza studiami - np. w wojsku. Nauczyliby się
    > przynajmniej dyscypliny i samozaparcia. A tak to przychodzą jak błędne
    > sieroty do pierwszej roboty i zagubieni bo mamy nie ma a świat jest dla
    > nich nagle taki zły niedobry.
    >
    > Mateusz

    jesli uderzasz w knajackie formy wypowiedzi "magistry" "sieroty" to twoja psychologia
    poprostu objawia ze nalezysz do klasy pol-knajackich prymitywow i wyrazasz z powodow
    psychologicznych swoj knajacki swiatopogląd (zapewne nie masz studiow i chcesz bronic
    prostych ludzi)

    moje doswiadczenie jest jak wspomnielem inne: oczywiscie studia niekoniecznie za duzo
    gwarantuja ale brak studiow gwarantuje na ogol jeszcze mniej... moje doswiadczenie z
    kolesiami po studiach na politechnice bylo takie ze radzili sobie nadspodziewanie
    dobrze

    inna rzecz jest tez taka ze nie wszyscy umieja oceniac czyjas robote, czasem
    niektorzy szefowie wykazuja sie mega niezrozumieniem - bywa szefiostwo ktore ocenie
    kodera jako dobrego gdy ten stuka 20 linijek kodu (w javie) na dzien a bywa takie
    ktore ocenia kodera jako zlego gdy ten wystukal 9500 linijek kodu (tez w javie) na
    miesiac
    (skrajnie absurdalne oceny imo)


  • 112. Data: 2019-07-22 10:16:39
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu wtorek, 18 czerwca 2019 14:30:41 UTC+2 użytkownik Mateusz Viste napisał:
    >
    > Ja piszę o programowaniu systemowym na platformy unixowo-podobne
    > (FreeBSD, Linux) z naciskiem na przetwarzanie danych i obsługę wszelakich
    > komunikacji sieciowych. Otóż kandydaci po studiach których zdarza mi się
    > widywać często nie mają pojęcia o TCP/IP, nie potrafią obsłużyć poprawnie
    > zwykłego socketu stream, o BGP nigdy w życiu nie słyszeli, a o SQL wiedzą
    > tyle, że to "coś z SELECT". Ba, przerażająca większość wykłada się na
    > napisaniu prymitywnego programu w C pt. "program ma pobrać z linii
    > poleceń ciąg liczb i wskazać najwyższą". Śmieszne to, czy żałosne - do
    > tej pory nie potrafię się zdecydować.
    >

    jesli nie potrafisz sie zdecydowac to wygladasz naprawde na prymitywnego czlowieka,
    bo nie jest to ani smieszne ani zalosne, jest to jak najzupelniej normalne - sa to
    poprostu ludzie ktorzy nic nie umieja i kazdy taki byl nim sie czegos nauczyl, wiec
    przyjomanie wobec nich poz psychiocznego klowna co probujesz robic nie ma za wiele
    sensu

    swoja droga to wyzej to nie sa absolwencci IT po dobrej politechnice
    Ci o ktorych ja mowie wlasnie byli tego dobrze nauczeni i ogolnie bylo zdolnie do
    czegos takiego jak przejecie projektu
    robionego ze 3 lata przez grupe kilku osob gdy jego glowny programista odszedl z
    roboty i prowadzenia go - ot tak przychodzac do tej roboty po skonczeniu swojej
    politechniki - co moim zdaniem
    jest imponujace jak diabli

    sam bylem wtedy zaznaczam o wiele slabszy, bazy danych np widzialem wtedy pierwszy
    raz na oczy , choc ich sie w miesiac nauczylem bo to akurat dosyc proste..teraz nie
    pracuje swoaj droga od paru lat bop jestem rpzewlekle chory, mam wrazenie ze moj
    skill znacznie wzrosl (bo napisalem solo kilka projektow np moj wlasny fancy asembler
    x86 org-asm, wlasne bibliotekie do gier 2d/3d na rasteryzerze green.fire.dll)
    ale klimaty pracy grupowej sa mi obecnie obce (co jest zle bo kasa mi sie konczy a
    zarazem przewlekle chorowanie szczerze mowiac raczej 'usuwa' mnie z rynku)


  • 113. Data: 2019-07-22 17:03:54
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu wtorek, 18 czerwca 2019 17:55:02 UTC+2 użytkownik Roman Tyczka napisał:
    > On 18 Jun 2019 15:20:55 GMT, Mateusz Viste wrote:
    >
    > >> Właśnie staram się ci powiedzieć, że ucząc się programowania, nawet od
    > >> specjalistów, nauczysz się programować, być może nawet świetnie. Ale
    > >> będziesz wiedział tylko "co", a nie "jak", a już zwłaszcza "po co".
    > >
    > > Brzmi jak jakaś religia. Ja tu o pisaniu programów, a ty o mistycznym
    > > zrozumieniu świata i muchach. Faktycznie nie mówimy tym samym językiem. :)
    > >
    > > Proponuję EOT, bo mam obawy że ta dyskusja prowadzi donikąd...
    > > Niekompatybilne protokoły, czy coś.
    >
    > Bo on mówi o zaawansowanej algorytmice, numeryce i matematyce, a Ty o
    > rzeżbieniu w strumieniu danych, alokowaniu pamięci, ramkach, buforach i
    > całym tym nieistotnym, niskopoziomowym, implementacyjnym pierdulamencie.
    >
    bardzo istotnym, umiec dobrze zakodowac niskopoziomowy kod jest bardzo istotne

    z tym ze programowanie jest bardzo rozlegle i programowanie czegos != programowanie
    czegos innego != programowanie czegos jeszcze innego itd

    nie sadze jednak by to mialo znaczyc ze programisci bez studiow sa lepsi w kodowaniu
    niskopoziomowego kodu

    chyba prosciej zalozyc ze kazdy umie robic to czego sie nauczyl a to roznie sie po
    ludziach rozklada


  • 114. Data: 2019-07-22 17:24:46
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu piątek, 12 lipca 2019 07:27:56 UTC+2 użytkownik DMR napisał:
    > > Zamieszcze tu po raz 473 w ciagu 20 lat podstawową formułkę
    > > (Ba! KANON!)
    >
    >
    > To ja poprosiłbym o jakiś patent na odporne na zaokrąglenia rozdzielenie części
    całkowitej i ułamkowej w zmiennej typu double.
    >
    >
    >
    > > ponaglenia o pilną zapłatę 0.00PLN
    >
    >
    > No właśnie.
    > Przykładowo, muszę zrobić: 12345.6789 zł -> 12345 zł 68 gr
    >
    > Wiadomo:
    >
    > double suma, f;
    > int zlote, grosze;
    >
    > ...
    >
    > suma += 0.005;
    >
    > zlote = (int)suma;
    > f = suma - zlote;
    > grosze = (int)(f * 100.0);
    >
    > Problemy mogą pojawić w przypadku wartości praktycznie równych wartościom
    całkowitym.
    > Gdyby na skutek jakichś zaokrągleń wartość f okazała się ujemna, to nie ma problemu
    - (int) i tak "dociągnie" ją do zera.
    >
    > Gorzej, gdyby np. suma = 1234.9999999999999997, za to teoretycznie f =
    0.9999999999999997 za sprawą zabłąkanego bitu na końcu przeskoczyła na f =
    1.0000000000000001.
    > Wtedy wyjdzie 1234 zł 100 gr...
    >
    > Chyba, że nie potrzebnie się martwię.
    > Testowałem to wielokrotnie dla miliardów złośliwie wygenerowanych danych "z
    pogranicza" - ani razu się nie wywaliła.
    >
    > No, ale... :-)

    chyba cos kolega piepszy

    zlote = (int)suma;
    f = suma - zlote;
    grosze = (int)(f * 100.0);

    nie chce mi sie nad tym za dlugo zastanawiac ale na oko to bedzie dzialac
    zawsze poprawnie (zakladam ze wartosc suma jest dodatnia i ze chodzi o zaokraglenie w
    dol, nie mam pojecia jakie reguly zaokraglania pieniedzy panuja w bankach)


  • 115. Data: 2019-07-22 21:56:48
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu środa, 3 lipca 2019 00:42:54 UTC+2 użytkownik J.F. napisał:
    > Dnia Tue, 2 Jul 2019 22:56:19 +0200, AK napisał(a):
    > > On 2019-06-26 06:21, J.F. wrote:
    > >>> PS: Zapsz si ejednak na ten kurs numeryki. Moze jeszcze gdzies ucza o
    > >>> float...
    > >>
    > >> 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 :-)
    > >
    > > 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.
    >
    > 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.

    moim zdaniem jakis powazniejszy system do arytmetyki na liczbach 'float' powinien
    chyba wykonywac operacje na zadawanej precyzji - bo 1) im wiecej precyzji tym wolniej
    2) czesto potrzebujesz mniej niz na zwyklych float doublach - byloby wiec szybciej
    (na przyklad nie potrzebujesz 50 bitow precyzji sinusa liczonego na liczbie zapodanej
    na osi x tez z 50-cioma bitami precyzji - moze wystarczyc nap 15 bitow x i 10 bitow y
    czy cos takiego 3) ew daloby tez sposobnosc policzenia wiecej niz nawet 80 bitow od
    czasu do czasu

    moim zdaniem powazna arytmetyka na float raczej powinan dawac mozliwosc kontrolowania
    tych dlugiosci bitowych czy jak to nazwac

    nic tez nie stoi na przeszkodzie by reprezentacji bylo wiecej obok siebie (powinno
    ich byc wiecej bo rozne lepiej nadaja sie do roznych rzeczy)


  • 116. Data: 2019-07-24 19:19:35
    Temat: Re: Porównywanie liczb, double float
    Od: DMR <m...@g...com>

    Chyba coś kolega "piepszy".

    Nie chce mi się tego czytać, ale na oko właśnie tak jest.


  • 117. Data: 2019-07-24 21:13:35
    Temat: Re: Porównywanie liczb, double float
    Od: AK <n...@n...net>

    On 2019-07-24 19:19, DMR wrote:
    > Chyba coś kolega "piepszy".
    >
    > Nie chce mi się tego czytać, ale na oko właśnie tak jest.

    To po prostu upierdliwy troll.

    AK


  • 118. Data: 2019-07-24 22:39:21
    Temat: Re: Porównywanie liczb, double float
    Od: fir <p...@g...com>

    W dniu środa, 24 lipca 2019 19:19:36 UTC+2 użytkownik DMR napisał:
    > Chyba coś kolega "piepszy".
    >
    > Nie chce mi się tego czytać, ale na oko właśnie tak jest.

    to swietnie bo na wykłocanie sie z matolkami nie mam czasu


  • 119. Data: 2019-07-26 20:35:01
    Temat: Re: Porównywanie liczb, double float
    Od: AK <n...@n...net>

    On 2019-07-24 22:39, fir wrote:

    > to swietnie bo na wykłocanie sie z matolkami nie mam czasu

    No jakze to?
    Przecie tu na grupie "od lat" gadasz glownie sam z soba ?

    AK


  • 120. Data: 2020-01-12 19:17:14
    Temat: Re: Porównywanie liczb, double float
    Od: DMR <m...@g...com>

    Sorunia za crossa, ale tu też o tym pisałem. :-)



    > Przykładowo, muszę zrobić: 12345.6789 zł -> 12345 zł 68 gr
    >
    > Wiadomo:
    >
    > double suma, f;
    > int zlote, grosze;
    >
    > ...
    >
    > suma += 0.005;
    >
    > zlote = (int)suma;
    > f = suma - zlote;
    > grosze = (int)(f * 100.0);
    >
    > Problemy mogą pojawić w przypadku wartości praktycznie równych
    > wartościom całkowitym.
    > Gdyby na skutek jakichś zaokrągleń wartość f okazała się ujemna,
    > to nie ma problemu - (int) i tak "dociągnie" ją do zera.
    >
    > Gorzej, gdyby np. suma = 1234.9999999999999997, za to teoretycznie
    > f = 0.9999999999999997 za sprawą zabłąkanego bitu na końcu przeskoczyła
    > na f = 1.0000000000000001.
    > Wtedy wyjdzie 1234 zł 100 gr...


    Ale jeśli zrobię tak:

    grosze = (int)(f * 99.99);

    to problem zniknie raz na zawsze.
    Rzecz jasna, wtedy sumy typu x.9951 zł przejdą na x zł 99 gr, co oczywiście formalnie
    jest błędem, ale - z drugiej strony - jeszcze poważniejszym błędem jest zaokrąglanie
    sum do pełnych groszy, przy jednoczesnym rozbijaniu tematu o pojedyncze miligrosze.

    No, ale pytanie jest zasadnicze - czy na skutek zaokrągleń, możliwe jest zajście
    przypadku:

    (Double - (int)Double) * 1Ex >= 1Ex

    dla "rozsądnych" wartości x (biorąc po uwagę zakresy typów, powiedzmy: 0-8)?
    Ktoś może potwierdzić/zaprzeczyć?

strony : 1 ... 11 . [ 12 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: