Podczas obliczeń konwersja do decimal nie jest potrzebna. Nie potrzebujesz przewidywalności, jedynem celem tych algorytmów jest prezentacja człowiekowi danych i nic więcej. Ten problem z utrudnioną prezentacją niektórych liczb jest wyłacznie problemem estatycznym.
Didn't find your answer? Ask the community — no account required.
Z
Zbych
W dniu 03.12.2016 o 22:38, Sebastian Biały pisze:
Nie musicie czekać, IBM Power8 to ma.
S
Sebastian Biały
No ma, ale nikt tego nie używa do czegokolwiek sensownego. Żeby było na hardware musi poawić sie na maszynach do ogladania porno i facebooka. Czekamy.
I
invalid unparseable
Nikt tu nie widział takiego cuda?
H
HF5BS
U¿ytkownik "Sebastian Bia³y" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:o20p1u$rhg$ snipped-for-privacy@node2.news.atman.pl...
Nie potrzebujê, by by³o ³adnie, estetycznie, choæ mi³o bêdzie, gdy tak siê stanie. Potrzebujê wyniku zgodnego z rzeczywisto¶ci±, a czy to bêdzie rozwolnienie kota s±siadki, czy osmarkane krasnoludki, czy 7 segmentów wy¶wietlacza LED, to mi mniej na tym zale¿y, byle u³o¿y³o siê we w³a¶ciwy wynik.
S
Sebastian Biały
Za pomocą liczb float nie da się tego w ogólnym przypadku uzyskać i nie ma to nic wspólnego z prezentacją. Prezentacja z "błędami" to tylko proba estatycznego zamiatania pod dywan problemów z mantysą.
H
HF5BS
Czyli pozostaje chyba napisaæ w³asny algorytm, skoro "fabryczny" jest do kitu...? Na emulatorze Spectruma odj±³em 5.2-5 i by³o jak nale¿y, 0.2... Wiêc chyba siê postarali?
S
Sebastian Biały
Nie da się. Rozwinięcia bywają nieskończone lub niepraktycznie długie bez względu na wybór mantysy.
To tylko efekt warstwy prezentacji lub innego sposobu trzymania mantysy. W ogólnym przypadku w dowolnie wymyslonej reprezentacji nie da się zapisać dowolnej liczny, nawet wymiernej, bo pamięci zabraknie. Można albo oszukiwac przy wyświetlaniu albo modyfikować mantysę aby zadowolić jakąs grupę (jak dziesietne mantysy w IEE754-2008).
Pewne substytuty mozna uzyskać licząc symbolicznie i odraczając dzielenia ale to nie jest zawsze możliwe. Mówiąc wprost każde obliczenia floating point są obarczone błędem. Trzeba z tym żyć i nauczyć się go minimalizować.
R
RoMan Mandziejewicz
Spectrum też miał błąd w arytmetyce, tylko nie pamiętam, jakich liczb dotyczył - bliskich 1?
H
HF5BS
U¿ytkownik "Sebastian Bia³y" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:o21u4b$52u$ snipped-for-privacy@node1.news.atman.pl...
Tego jestem ¶wiadom, ¿e tu trzeba co¶ z czym¶ pogodziæ.
Dok³adnie o to mi chodzi. Nie wiem czemu, mo¿e g³upio, kojarzy mi siê to, znaczy siê co po przecinku, z odwróceniem widma sygna³u w jakim¶ pa¶mie, a potem ponownym jego odwróceniu, ¿eby przywróciæ sygna³ pierwotny. No, nie da siê stuprocentowo, zaczynaj± mi tu przed oczami fruwaæ, inna sprawa, czy s³usznie, zale¿no¶ci czasowe, fazowe, ¿e co mo¿na szybko zrobiæ z gór±, to straci siê po odwrotce i ju¿ nie odzyska, choæ podobno w szczegó³ach diabe³ ¶pi. Zamierzam, je¶li dorwê mozliwo¶æ zrobienia takiej odwrotki wokó³ zadanej czêstotliwo¶ci (mo¿e w Audacity siê da, wprost, czy przez wtyczkê?) i zobaczyæ, jaki to daje rezultat np. przy obrazkach SSTV... ¦miesznie wychodzi np. kodek GSM...
H
HF5BS
Użytkownik "RoMan Mandziejewicz" snipped-for-privacy@pik-net.pl.invalid> napisał w wiadomości news: snipped-for-privacy@pik-net.pl.invalid...
Np. 1.01-1=0.009999998 Tak pokazał emulator. To samo 2.01-2, ale już 2.02-2=0.02.
R
RoMan Mandziejewicz
Nie - to co pokazujesz, to jest sprawa gównianej precyzji. Był grubszy błąd związany z interpretacją 5-bajtowego zapisu.
J
J.F.
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.
J
Janusz_k
W dniu 2016-12-03 o 19:26, HF5BS pisze:
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.
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.