Zaokrąglenie liczby do całości

Zaokrąglenie liczby do całości
OK
  • Rejestracja:ponad 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:3
0

chciałbym by mój program mnożył liczbę razy półtora, a następnie jeśli byłaby nie całkowita, to zaokrąglał ją do całkowitej i później wyświetlał, jednak z jakiegoś powodu to nie działa.

Kopiuj
a = 4
b = a + a/2
if type(b) == int:
    print(b)
else:
    print(b = .5)
edytowany 2x, ostatnio: cerrato
lion137
Niestety Mazowsze :D, ale na 4programmers pomogą :)
Riddle
@Okasink: Staraj się następnym razem lepiej nazwać temat. Tytuł "Pomoże ktoś" nie jest najlepszy.
Konrado777
  • Rejestracja:ponad 2 lata
  • Ostatnio:4 miesiące
  • Postów:75
0
Okasink napisał(a):

chciałbym by mój program mnożył liczbę razy półtora, a następnie jeśli byłaby nie całkowita, to zaokrąglał ją do całkowitej i później wyświetlał, jednak z jakiegoś powodu to nie działa.

Kopiuj
a = 4
b = a + a/2.1
if type(b) == int:
    print(b)
else:
    print(round(b))
edytowany 1x, ostatnio: Riddle
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 godzin
  • Postów:1607
3

Rezultatem dzielenia / jest zawsze float. Rezultatem dodawania inta i floata jest zawsze float. Zatem b będzie zawsze floatem, a więc nigdy intem, zatem zawsze będziesz próbował wykonywać print(b = .5) — co jest nonsensowne, nie ma takiego zapisu w Pythonie i nawet nie wiem, co chciałeś tym uzyskać… b = 0.5; print(b)?

Jeśli chcesz, żeby program mnożył liczbę przez półtora i ją zaokrąglał (do góry, jak mniemam?), to niech robi właśnie to. Zauważ, że zaokrąglenie (do góry też) nie zmienia liczb, które już są całkowite, zatem nie musisz rozpatrywać tego podprzypadku i wystarczy:

Kopiuj
from math import ceil

print(ceil(b * 1.5))

(ceil jest zaokrągleniem w górę, są i inne zaokrąglenia)

OK
  • Rejestracja:ponad 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:3
0

Dziękuje bardzo za pomoc.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.