Strange division results in python 3 -
i think there inconsistency in division operation, not sure.
in following code expect either a//c 100.0, or b//c -99.0.
a = 1.0 b = -1.0 c = 0.01 print (a/c) print (a//c) print (b/c) print (b//c)
gives:
100.0 99.0 -100.0 -100.0
thanks
this due way floating point numbers represented. it's not true 1.0
100 times 0.01
(as far floating points represented internally). operator //
performs division , floors result may internally number less 100.0
, leads being floored 99.0
.
furthermore, python 3.x uses a different approach showing floating point number compared python 2.x. means result of 1.0 / 0.01
, although internally less 100.0
, displayed 100.0
because algorithm determined number close enough 100.0
considered equal 100.0
. why 1.0 / 0.01
shown 100.0
though may not represented internally number.
Comments
Post a Comment