-
31. Data: 2016-12-05 03:21:35
Temat: Re: [OT] sukces tylko w zjednoczeniu europy
Od: "HF5BS" <h...@...pl>
Użytkownik "RoMan Mandziejewicz" <r...@p...pl.invalid> napisał w
wiadomości news:1054345892.20161205010009@pik-net.pl.invalid...
> Spectrum też miał błąd w arytmetyce, tylko nie pamiętam, jakich liczb
> dotyczył - bliskich 1?
Np. 1.01-1=0.009999998
Tak pokazał emulator.
To samo 2.01-2, ale już 2.02-2=0.02.
--
...Ja biorę na siebie schody, znajdę je skubane i skopię im poręcz
tak, że nie będą wiedziały, którędy na górę. (C) Osioł ze Shreka.
-
32. Data: 2016-12-05 10:29:40
Temat: Re: [OT] sukces tylko w zjednoczeniu europy
Od: RoMan Mandziejewicz <r...@p...pl.invalid>
Hello HF5BS,
Monday, December 5, 2016, 3:21:35 AM, you wrote:
>> Spectrum też miał błąd w arytmetyce, tylko nie pamiętam, jakich liczb
>> dotyczył - bliskich 1?
> Np. 1.01-1=0.009999998
> Tak pokazał emulator.
> To samo 2.01-2, ale już 2.02-2=0.02.
Nie - to co pokazujesz, to jest sprawa gównianej precyzji. Był grubszy
błąd związany z interpretacją 5-bajtowego zapisu.
--
Best regards,
RoMan
Nowa strona: http://www.elektronika.squadack.com (w budowie!)
-
33. Data: 2016-12-05 12:57:24
Temat: Re: [OT] sukces tylko w zjednoczeniu europy
Od: "J.F." <j...@p...onet.pl>
Użytkownik "RoMan Mandziejewicz" napisał w wiadomości grup
dyskusyjnych:6...@p...pl.inv
alid...
Hello HF5BS,
Monday, December 5, 2016, 3:21:35 AM, you wrote:
>>> Spectrum też miał błąd w arytmetyce, tylko nie pamiętam, jakich
>>> liczb
>>> dotyczył - bliskich 1?
>> Np. 1.01-1=0.009999998
>> Tak pokazał emulator.
>> To samo 2.01-2, ale już 2.02-2=0.02.
>Nie - to co pokazujesz, to jest sprawa gównianej precyzji. Był
>grubszy
>błąd związany z interpretacją 5-bajtowego zapisu.
Precyzja Spectrum nie odbiegala jakos bardzo od innych maszych w tych
czasach, przynajmniej na liczbach typu "float" :-)
Mowa byla o C64 ... tam nie wiem, ale cos mi chodzi po glowie, ze
atari uzywalo formatu zmiennoprzecinkowego z uzyciem BCD.
To takich "bledow" tam nie bedzie, beda inne :-)
J.
-
34. Data: 2016-12-05 19:06:17
Temat: Re: [OT] sukces tylko w zjednoczeniu europy
Od: Janusz_k <J...@o...pl>
W dniu 2016-12-03 o 19:26, HF5BS pisze:
>
> Użytkownik "J.F." <j...@p...onet.pl> napisał w wiadomości
> news:phapwfedlpal$.b77f1vi5x2g5.dlg@40tude.net...
>> Dnia Sat, 3 Dec 2016 01:22:11 +0100, HF5BS napisał(a):
>>> Co do matematyki - w C64 odejmij 5.2-5... Wynik <>0.2... (kiedyś mi
>>> przez
>>> ten błąd jeden program liczący odległości pokazywał kompletne
>>> bzdury). Radzę
>>> sobie wtedy, mnożąc elemeny działania przez 10 i o tyleż dzieląc wynik,
>>> wyjdzie OK.
>>
>> Hm, jesli w C64 nie spieprzyli czegos mocno, to wynik nie powinien
>> bardzo odbiegac od 0.2. Co jak co, ale odleglosci powinny sie liczyc
>
> No, tak bardzo nie odbiegał. Ale czegoż wymagać od liczby zaledwie
> 5-bajtowej? Problem był głównie w tym, że właśnie granica 0.2 była
> podziałem między obszarami. Wynik poniżej 0.2 zaliczał obiekt do
> położonego w sąsiednim obszarze. Najlepsze, że spowodowało to w końcu
> zaliczenie położenia, do obszaru, który nie istnieje. Mimo, że wyliczona
> odległość nie była specjalnie różniąca się od właściwej. Musiałem
> zastosować wybieg, gdzie cząstki odejmowania pomnożyłem najpierw przez
> 10, wykonałem odejmowanie i wtedy wynik podzieliłem przez 2, co już dało
> oczekiwane 0.2.
Bo to był Twój błąd w programie wynikający z braku znajomości
reprezentacji liczb rzeczywistych, takich liczb się NIE porównuje
tylko bada czy mieści się w danym zakresie, jakbyś wynik badał
np: czy mieści się >0,19 <0,21 to byś nie miał problemów.
Prawie każdy początkujący programista się wykłada na porównaniu liczb float.
--
Pozdr
Janusz_k