logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dlaczego przeliczanie zmiennych odbywa się nieprawidłowo?

krystianek77 16 Kwi 2015 15:21 765 5
REKLAMA
  • #1 14621986
    krystianek77
    Poziom 8  
    Witam serdecznie

    Jestem nowym użytkownikiem, także z góry przepraszam, jeśli coś będzie nie tak. Mam problem .

    Kod programu:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Problem polega na tym, że wynik powinien być 0.161984 natomiast podawany jest
    0.161983962 - z czego może wynikać ten problem ? czy ktoś z Szanownych Forumowiczów spotkał się z czymś podobnym ?

    pozdrawiam i z góry dziękuję za odpowiedzi

    Krystian
  • REKLAMA
  • #2 14622073
    BlueDraco
    Specjalista - Mikrokontrolery
    Problem wynika z samej reprezentacji zmiennopozycyjnej, które jest reprezentacją przybliżoną. Liczna liczbach całkowitych ze skalowaniem, a problem ni będzie Ciebie dotyczył. Przy okazji obliczenia będą kilkaset razy szybsze.
  • REKLAMA
  • #3 14622099
    krystianek77
    Poziom 8  
    Dzieki BlueDraco za szybka odp. Moglbys nieco rozszerzyć temat o co chodzi ze skalowaniem bo przyznamy szczerze nie spotkałem się wcześniej z tym zagadnieniem
  • REKLAMA
  • #4 14622273
    BlueDraco
    Specjalista - Mikrokontrolery
    Pieniądze możesz liczyć w groszach, a niekoniecznie w złotówkach z dwiema cyframi po przecinku, nieprawdaż?
  • REKLAMA
  • #5 14624292
    krystianek77
    Poziom 8  
    Drodzy Forumowicze

    Zmieniłem nieco kod - ale nadal wynik jest nie taki jak bym chciał - spójrzcie proszę swym fachowym okiem i uświadomcie żółtodzioba

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powinno być: 103307,0166.......
    Jest : 103307,0234.......
  • #6 14624332
    tmf
    VIP Zasłużony dla elektroda
    Przyjrzyj się reprezentacji liczby float ze szczególnym uwzględnieniem liczby miejsc znaczących dla liczb pojedynczej precyzji, a sprawa stanie się jasna.
REKLAMA