• Register

Natančnost primerjanja vrednosti int=float

+1 vote
101 views

Na predavanjih smo se spraševali kak se izvede sledeči stavek:

if 1==1.:

     print('enako')

else:

     print('ni enako')

Je kdo podrobneje raziskal in našel odgovor?

asked Oct 11, 2022 by janko.slavic (81,340 points)
edited Oct 11, 2022 by janko.slavic

1 Answer

+2 votes

V primeru, da izvedemo stavek kot je, dobimo error za napacno sintakso. Enojna enakost ne primerja vrednosti, temveč prireja vrednost spremenljivki.

Če pa uporabimo dvojno enakost (==), pa dobimo: enako. 

 

Sicer pa lahko do napak na n-tem decimalnem mestu floata pride zaradi pretvorbe števila iz desetiškega sistema v dvojiški sistem, kar je dobro opisano tukaj: https://davidamos.dev/the-right-way-to-compare-floats-in-python/

answered Oct 11, 2022 by ajarc (680 points)
odlično; sem popravil lapsus z ==:)
...