Python - Float不等于同一个浮点数?

时间:2014-12-04 07:27:32

标签: python

所以我有这个:

import random

rand=random.random()
print rand

inp = raw_input("Enter your guess: ")
print float(inp)

try:
  if float(inp)==rand:
    print "equal"
  else:
    print "not equal"
except:
  print "error"

然而它说它并不平等。我知道这是由于浮点不准确,但我怎么能作为用户输入相同的东西呢?

2 个答案:

答案 0 :(得分:4)

因为你在浮动上使用print,所以它显示在一个更漂亮的"省略一些小数位的格式。您可以print repr(rand)显示所有数字:

>>> rand = random.random()
>>> print rand
0.004312203809
>>> print repr(rand)
0.004312203809001436

如果您使用后一种形式,然后键入所有这些数字,您可以让它识别浮动​​相等。

答案 1 :(得分:0)

即使您可以使用 repr 属性

import random

rand=random.random()
print rand.__repr__()

inp = raw_input("Enter your guess: ")

print float(inp).__repr__()

try:
   if float(inp)==rand:
       print "equal"
   else:
       print "not equal"
except:
       print "error"