Zaokrąglenie liczby do całości

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.

a = 4
b = a + a/2
if type(b) == int:
    print(b)
else:
    print(b = .5)
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.

a = 4
b = a + a/2.1
if type(b) == int:
    print(b)
else:
    print(round(b))
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:

from math import ceil

print(ceil(b * 1.5))

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

0

Dziękuje bardzo za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1