我写了以下函数,其中传递了x和y的值:
现在,通过变量x和y的打印语句,很难调试为什么x != y(尽管它们都打印相同的值)。尽管我通过打印x - y解决了这个问题,但是否有任何方法可以修改打印语句,以便在这种特定用例中知道为什么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)
它会打印:
<type 'float'>
<type 'float'>
1.0
1.0
现在,通过变量x和y的打印语句,很难调试为什么x != y(尽管它们都打印相同的值)。尽管我通过打印x - y解决了这个问题,但是否有任何方法可以修改打印语句,以便在这种特定用例中知道为什么x!= y,而不使用任何外部打印库或减法解决方案。
'{0:.16f}'.format(1.6)
)根本无法实现这个目的,例如1e-300
和2e-300
具有相同的固定小数字符串表示,并且不能满足“完全精度”。 - bluenote10print(repr(x))
不能胜任此工作吗? - ɲeuroburɳ