在下面的代碼中,如果x0 == x1和y0 == y1,那麼它應該告訴我。在我使用的例子中,他們是。然而,Python只是說x值是相等的,而不是y。爲什麼這些花車不被評估爲平等?
下面的代碼:
print "arc2x0 = ", arc2x0, ", arc2x1 = ", arc2x1
print "arc2y0 = ", arc2y0, ", arc2y1 = ", arc2y1
if arc2x0 == arc2x1:
print "x0 == x1"
else:
print "x0 != x1"
if arc2y0 == arc2y1:
print "y0 == y1"
else:
print "y0 != y1"
而這裏的輸出:
arc2x0 = 5 , arc2x1 = 5.0
arc2y0 = -4.16026900507 , arc2y1 = -4.16026900507
x0 == x1
y0 != y1
任何想法,爲什麼y值是測試爲平等的嗎?這些值以相同的方式計算。也許有更多的精確度超出我所看到的不等於?任何方式來打印精度或任何其他想法如何調試?
使用decimal.Decimal – 2011-03-30 02:51:11
'打印「arc2y0 =%R,arc2y1 =%R」%(arc2y0,arc2y1)'你會看到你的號碼是不完全等於 – 2011-03-30 03:19:18