负数的比较结果是错误的

时间:2016-08-27 20:31:10

标签: python python-2.7

我正在测试位置边界框,但是当将负(南或西)位置与其他负位置进行比较时,它会将结果颠倒过来。

if minlat > maxlat:
    minlat, maxlat = swap(minlat, maxlat)
if minlon > maxlon:
    minlon, maxlon = swap(minlon, maxlon)

在比较北半球的纬度或南半球和北半球的位置时,这种方法很好,但是当比较南半球的位置时,它会转动它们(即,-20.4小于-20.8)。有没有一个简单的解决方案,或者如果两个值都小于0,我必须进行不同的测试吗?

2 个答案:

答案 0 :(得分:1)

if float(minlat) > float(maxlat):

确保比较的数字实际上是数字而不是字符串对象。使用小于或大于比较字符串对象会产生奇怪的结果。

答案 1 :(得分:0)

通常你会想要比较绝对值而不是这个场景中的实际值,试试

if abs(minlat) > abs(maxlat):
祝你好运!