2016-08-27 6 views
-1

私はポジションバウンディングボックスのテストを行っていますが、負の(南または西)ポジションと他の負ポジションを比較すると、結果が上下逆になります。負数の比較が間違っている

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

北半球と南に北半球またはポジションの緯度を比較したとき、これは正常に動作しますが、南半球に位置を比較するときには(すなわち、-20.4未満-20.8である)、それらを回ります。これには簡単な解決策がありますか、または両方の値が0より小さい場合は別のテストを行う必要がありますか?

答えて

0

if float(minlat) > float(maxlat):

比較数値は実際の数字ではなく文字列オブジェクトで確認すること。より小さいか大きい値を使って文字列オブジェクトを比較すると、奇妙な結果が出る可能性があります。

+0

このコードスニペットは問題を解決するかもしれませんが、[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)本当にあなたの投稿の質を向上させるのに役立ちます。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。また、コードと説明の両方の可読性が低下するため、説明的なコメントを使用してコードを混乱させないようにしてください。 – FrankerZ

+0

リマインダをありがとう、私は答えを明確にするために編集します –

0

一般的には、むしろ、このシナリオでは、実際の値よりも絶対値​​を比較したいと思う、

if abs(minlat) > abs(maxlat): 

幸運を試してみてください!

+1

私は実際の値(-3> -5、-3 <5、3 <5など)を比較しようとしていましたが、実際に数値であることを実際に確認するヒントを与えましたstr()として渡されていた)。浮動小数点数として強制されているので、うまくいくはずです。 –

関連する問題