我试图输出经度和经度的值,我从sql表中查询过。我的问题是,当值为0.000000时,它会输出1.04480899798659e-276的内容。 我检查了这两行代码上面的输出值:
latitudeOutput.text = [[NSNumber numberWithDouble:[theGPS latitude]] stringValue];
longitudeOutput.text = [[NSNumber numberWithDouble:[theGPS longitude]] stringValue];
它肯定会输出0.000000。有谁知道为什么会发生这种情况,无论如何我可以解决它?
----添加了章节----
为什么这个if if语句会直接进入else部分,尽管纬度和经度值等于0.000000?
if(latitude == @"0.000000" && longitude == @"0.000000"){
latitudeOutput.textColor = [UIColor grayColor];
longitudeOutput.textColor = [UIColor grayColor];
latitudeOutput.text = @"Latitude";
longitudeOutput.text = @"Longitude";
}
else {
latitudeOutput.text = latitude;
longitudeOutput.text = longitude;
}
答案 0 :(得分:2)
内存地址的格式为0xdeadbeef
。
你的价值是用scientfic notation.的“变体”写的双重值。它非常接近0.0 (wolfram alpha visualization)
这是因为计算机存储浮点值的方式。您可以阅读更多here.
要解决您的问题,我建议您将输出格式化为仅包含小数点后的数字。
NSString* formattedNumber = [NSString stringWithFormat:@"%.02f", [theGPS latitude]];
这将在小数点后给你2个位置。