eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPorównywanie liczb, double float › Re: Porównywanie liczb, double float
  • Data: 2019-06-12 14:47:06
    Temat: Re: Porównywanie liczb, double float
    Od: Wojciech Piechowski <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu środa, 12 czerwca 2019 14:17:44 UTC+2 użytkownik Pszemol napisał:

    > Dlaczego konwersja CDbl stringu 31 lub 32.8 dodaje jakieś
    > śmieci do zmiennej double float na 15 miejscu po przecinku??
    > A może odejmowanie stałej 1.8 wprowadza ten błąd?
    >
    > Czy to jest normalne zachowanie się VB6?
    >
    > Czy inne Visuale jak VC++ lub VC# też tak mają?

    Mniej więcej wszystko tak ma. "Normalne" typy zmiennoprzecinkowe (normalne, czyli
    float, double, zapisywane w stałej ilości bitów) odwzorowują liczby z jakąśtam
    dokładnością. Podczas operacji prawie zawsze wprowadza się jakąś odchyłkę.
    Porównywanie takich liczb na równość lub różność to źródło smrodu. Twój fix jest ok,
    to zdrowa praktyka na porównanie liczb zmiennoprzecinkowych: if abs(x-y)<0.00...001
    then...

    WP

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: