[EMAIL PROTECTED] wrote: > Basically, I have a code with is almost finished but I've having > difficultly with the last stage of the process. I have a program that > gets assigns different words with a different value via looking them up > in a dictionary: > > eg if THE is in the writing, it assigns 0.965 > > and once the whole passage is read it returns all the numbers in the > format as follows: > > ['0.965', '1.000', '0.291', '1.000', '0.503'] > > However, I can't seem to get the program to treat the numbers as > numbers. If I put them in the dictionary as 'THE' = int(0.965) the > program returns 1.0 and if I put 'THE' = float(0.965) it returns > 0.96555555549 or something similar. Neither of these are right!
int(0.965) is 0 and int("0.965") is an error, so I'm not sure what you did to get 1.0. but 0.965 and 0.96499999999999997 is indeed the same thing, when stored as binary floating point numbers: >>> 0.965 0.96499999999999997 >>> 0.965 == 0.96499999999999997 True for an explanation, see this page: http://docs.python.org/tut/node16.html in your case, explicitly formatting the numbers on the way might be good enough, e.g. print "%.3f" % value for details, see: http://docs.python.org/lib/typesseq-strings if you really need support for decimal floating point arithmetics, see: http://docs.python.org/lib/module-decimal.html </F> -- http://mail.python.org/mailman/listinfo/python-list