1 / 10 oraz 1 - 0.9 - 18 miejsc po przecinku

Mathematica, Matlab, Statistica, LaTeX i wszelkiego rodzaju oprogramowanie przydatne matematykowi w pracy. Miejsca w sieci poświęcone zagadnieniu.
thommen
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 28 sty 2022, o 14:44
Płeć: Mężczyzna
wiek: 33

1 / 10 oraz 1 - 0.9 - 18 miejsc po przecinku

Post autor: thommen »

Jestem w trakcie pisania programu. Mam 3 zmienne:

Kod: Zaznacz cały

x = 1
y = 10
z = 0.9
otrzymuję wyniki, które rozumiem:

Kod: Zaznacz cały

x / y = 0.1000000000000000
x - z = 0.1000000000000000
kiedy zmienię liczbę po przecinku do 18 otrzymuję niezrozumiałe dla mnie wyniki:

Kod: Zaznacz cały

x / y = 0.10000000000000001
x - z = 0.09999999999999998
dla 21 to:

Kod: Zaznacz cały

x / y = 0.10000000000000000555
x - z = 0.09999999999999997780
Dlaczego tak się dzieje?
Awatar użytkownika
kmarciniak1
Użytkownik
Użytkownik
Posty: 809
Rejestracja: 14 lis 2014, o 19:37
Płeć: Mężczyzna
Podziękował: 48 razy
Pomógł: 183 razy

Re: 1 / 10 oraz 1 - 0.9 - 18 miejsc po przecinku

Post autor: kmarciniak1 »

Komputer nie zna wszystkich liczb rzeczywistych bo ma skończoną pamięć. Tak naprawdę to co jest na 10 miejscu po przecinku i dalej można traktować jak śmieci. Jest cały ogromny dział na pograniczu matematyki i informatyki który nazywa się metody numeryczne która to dziedzina między innymi zajmuje się szacowaniem/minimalizowaniem błędów w różnego rodzaju obliczeniach.
thommen
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 28 sty 2022, o 14:44
Płeć: Mężczyzna
wiek: 33

Re: 1 / 10 oraz 1 - 0.9 - 18 miejsc po przecinku

Post autor: thommen »

@kmarciniak1, dziękuję Ci za pomoc
ODPOWIEDZ