Python

Iz nekog razloga ne radi uvek funkcija round() u Pythonu. Većina zadataka zahteva da rezultati budu zaokrugljeni na dve decimale, i zbog toga, naravno, primenim funkciju round().
Sve korektno, znači round(broj, decimale), međutim ako napišem round(1.8, 2) ili round(1.9, 2) (kako god…) program izbaci taj isti broj. Mogu da stavim i round(1.8, 15) al opet izbaci samo 1.8…

Problem možda i nije toliko važan al jednostavno ne radi… Ako neko zna zbog čega se to dogadja neka napiše, ili ako ima neki drugi metod za zaokrugljivanje brojeva. Pozdrav.

To se dešava jer su 1.8 i 1.80 isti broj, i stoga se isto reprezentuju u Python-ovoj memoriji. Ako je potrebno da se broj ispiše na dve decimale, nešto poput ovoga bi trebalo da radi (dokumentacija):

print('{:.2f}'.format(1.8))
1 Like

Evo probao sam sada i radi, hvala puno! Nisam očekivao uopšte odgovor a del tako brzo. Samo da povežem na koji način radimo zapis kad formatiramo. Pozdrav!

Može i ovako:
promenljiva=1.8
print("%.2f"%promenljiva)

1 Like

Mislim da samo vredi napomenuti da je pristup formatiranju sa % operatorom nepreporučljiv od Python verzije 3.1 pa naviše (iako radi u svim trenutnim verzijama Python-a).