我编写了以下函数,其中传递了x,y的值:
def check(x, y):
print(type(x))
print(type(y))
print(x)
print(y)
if x == y:
print "Yes"
现在当我打电话
check(1.00000000000000001, 1.0000000000000002)
它正在打印:
1.0
1.0
现在从变量x和y的打印语句中,我很难调试为什么x!= y(尽管两者都打印相同的值)。尽管我通过打印x-y来解决它,这给了我与众不同之处,但是有什么方法可以修改打印语句,以便在不使用任何外部打印库和减法解决方案的情况下,知道为什么在这种特殊用例中x!= y
python大神给出的解决方案
您真正需要的是小数。 Python float不允许您达到这种精度。
In [28]: d= Decimal('1.00000000000000001')
In [29]: print d
1.00000000000000001
Python sqlite3数据库已锁定 - python
我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: