CLLocationCoordinate2D
iOS アプリで2 つの (同一であるべき) 構造体を比較するのに最も苦労しています。何故か比較しても緯度が同じとは言えない。
コード:
double dlat = self.mapView.centerCoordinate.latitude - self.centerOnNextView.coordinate.latitude;
double dlong = self.mapView.centerCoordinate.longitude - self.centerOnNextView.coordinate.longitude;
NSLog(@"dlat: %f dlong: %f, dlat == 0.0: %d, dlat == -0.0: %d, dlong == 0.0: %d, dlong == -0.0: %d",
dlat, dlong, dlat == 0.0, dlat == -0.0, dlong == 0.0, dlong == -0.0);
if ( ( dlat == 0.0 || dlat == -0.0 ) && ( dlong == 0.0 || dlong == -0.0 ) ) {
NSLog(@"WE ARE EQUAL!");
}
if ( [@(dlat) isEqualToNumber:@(0)] && [@(dlong) isEqualToNumber:@(0)] )
比較チェックもやってみましたがダメでした。
出力は次のとおりです。
dlat: -0.000000
dlong: 0.000000
dlat == 0.0: 0 (false)
dlat == -0.0: 0 (false)
dlong == 0.0: 1 (true)
dlong == -0.0: 1 (true)
何らかの理由で、そこに負のゼロを入れ続けているだけで、それと比較するものは何もありません. これらのものを比較するにはどうすればよいですか?