Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności:
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: wynik działania  (Przeczytany 84 razy)
« : 13:13 16/05/19 »
kers Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 2


dlaczego na skutek tego działania dostaje wynik różny od 0?
0.1+0.2-0.3=
Zapisane
« Odpowiedz #1 : 13:18 16/05/19 »
DJangoL Offline
Professional Python User

Zobacz profil
***

Reputacja: 30
Wiadomości: 423


W Py3:

https://docs.python.org/3/tutorial/floatingpoint.html

Szerzej temat omówiony:

http://effbot.org/pyfaq/why-are-floating-point-calculations-so-inaccurate.htm
Zapisane
« Odpowiedz #2 : 12:33 17/05/19 »
Guaz Offline
Professional Python User

Zobacz profil
***

Reputacja: 64
Płeć: Mężczyzna
Wiadomości: 481


Powinieneś do tego użyć Fractions lub Decimal jak chcesz dokładność w obliczeniach zmiennoprzecinkowych Uśmiech
Kod
>>> from fractions import Fraction as Ulamek
>>> a = Ulamek(1, 10)
>>> b = Ulamek(2, 10)
>>> c = Ulamek(3, 10)
>>> a+b-c
Fraction(0, 1)
>>> float(a+b-c)
0.0
 
Zapisane

Python 3.5+ / Mint

Daje wędkę zamiast ryby. Chyba że ktoś się chce czegoś nauczyć, wtedy chętnie pomogę każdemu.
Za rybę niestety trzeba zapłacić Z politowaniem.
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2019 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot