From what I can tell, -73.81632995609999 is the only number that is off, and it is off by a very small margin. This is a well documented issue that arises because of how Python displays float numbers. From the python website:
On a typical machine running Python, there are 53 bits of precision available for a Python float, so the value stored internally when you enter the decimal number 0.1
is the binary fraction
0.00011001100110011001100110011001100110011001100110011010
which is close to, but not exactly equal to, 1/10.
It’s easy to forget that the stored value is an approximation to the original decimal fraction, because of the way that floats are displayed at the interpreter prompt. Python only prints a decimal approximation to the true decimal value of the binary approximation stored by the machine. If Python were to print the true decimal value of the binary approximation stored for 0.1, it would have to display
>>> 0.1
0.1000000000000000055511151231257827021181583404541015625
More specifically about small representation errors:
Representation error refers to the fact that some (most, actually) decimal fractions cannot be represented exactly as binary (base 2) fractions. This is the chief reason why Python (or Perl, C, C++, Java, Fortran, and many others) often won’t display the exact decimal number you expect:
>>> 0.1 + 0.2
0.30000000000000004
Why is that? 1/10 and 2/10 are not exactly representable as a binary fraction. Almost all machines today (July 2010) use IEEE-754 floating point arithmetic, and almost all platforms map Python floats to IEEE-754 “double precision”. 754 doubles contain 53 bits of precision, so on input the computer strives to convert 0.1 to the closest fraction it can of the form J/2**N where J is an integer containing exactly 53 bits.
In short, this modification occurs because of how Python stores numbers. You could try multiplying by 10^n and storing these values as integers, and then dividing when you need them for calculations. If you're doing simple calculations, the small difference created by python shouldn't have a substantial impact on those. Hope this helps.