[fix top posting]
Karsten Goen <karsten.g...@googlemail.com> wrote:
hey all,
I got a problem with floats and calculations. I made an mini-application
where
you get random questions with some science calculations in it
So the user can type in his result with the values given by random
creation.
And the user value is compared against the computer value... the problem
is
that the user input is only 2 numbers behind the '.' so like 1.42, 1.75

here is the example:
http://dpaste.com/hold/158698/

without decimal it would be very inaccurate. decimal is very accurate
when I
have to compare d with users calculations from a,b,c,var.
But when I ask the user what is "a" the result gets inaccurate when
calculating
with the same values given before (b,c,d,var).

Maybe anyone can help me with this problem, I don't want to generate for
every
possible user input a single formula. And also it should be possible for
a
computer, my calculator at home does the same and is much smaller and
slower.

d = (a * b)/ (c * var)
d = Decimal(d).quantize(Decimal('0.01'))

By quantizing d, the above equality does not hold any longer. You've got
to drop that line (your calculator doesn't quantize either).


Stefan Krah



Karsten Goen wrote:
> also this doesn't help, there are still errors in the accuracy. Isn't there
> a perfect way to do such calculations?
>

Please read the following and see if it helps. Also search the python users mailing list for something like floating point accuracy, you'll get plenty of hits.

http://docs.python.org/tutorial/floatingpoint.html

Regards.

Mark Lawrence

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to