Cześć, mam dzisiaj taki problem. Chcę w skrypcie podzielić dwie liczby np a = 2 / 3 i chcę wyświetlić wartość, to zamiast otrzymać liczbę po przecinku to otrzymuję 0. Czy jest możliwość zresetowania środowiska, albo naprawienia tego problemu?
Dlaczego dzielenie np 2/3 = 0
- Rejestracja: dni
- Ostatnio: dni
- Postów: 43
- Rejestracja: dni
- Ostatnio: dni
- Postów: 366
W pytonie masz dwa rodzaje dzielenia: dla liczb/cyfr całkowitych oraz zmiennoprzecinkowych. W Twoim przypadku obie cyfry są całkowite więc będzie wybrane dzielenie całkowite. Żebyś miał wynik przecinkowy to musisz jedną z cyfr zamienić na zmiennoprzecinkową np poprzez dodanie .0 na końcu czyli a = 2.0 / 3
Edit: Źródło: https://technikinformatyk.pl/kursy/kurs/python/lekcja/python-operatory-arytmetyczne/
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1620
Nie pisz niczego nowego w Pythonie 2, ten język jest już martwy. Python 3 ma w tym momencie prawie dwanaście lat, było naprawdę dużo czasu, żeby się przesiąść…
I Python 3 ma domyślnie właśnie dzielenie zmiennoprzecinkowe, zatem:
>>> 2/3
0.6666666666666666
>>> 2//3
0
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1265
@PerlMonk:
Masz rację w tym że faktycznie jest różnica. Tyle, że w Pytonie 2 jest właśnie zaokrąglanie w dół, a nie obcinanie wartości po przecinku.
> 2/3
0
> 2.0/3
0.666666666667
> -2.0/3
-0.666666666667
> -2/3
-1
Gdyby było obcinanie wartości po przecinku, to ostatni wynik byłby -0, a nie -1.