为什么我的函数输出一个看起来像内存地址的随机值?

Why is my function outputting a random value, which looks like a memory address?

我正在尝试输出我从 sql table 查询的纬度和经度值。我的问题是,当值为 0.000000 时,它会输出类似于 1.04480899798659e-276 的内容。 我检查了这两行代码上面的输出值:

latitudeOutput.text = [[NSNumber numberWithDouble:[theGPS latitude]] stringValue];
longitudeOutput.text = [[NSNumber numberWithDouble:[theGPS longitude]] stringValue];

它肯定会输出 0.000000 。有谁知道为什么会这样,无论如何我可以解决它?

----添加部分----

为什么这个 if else 语句直接进入 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;
}

内存地址的格式为0xdeadbeef

您的值是 scientfic notation. It is something extremely close to 0.0 (wolfram alpha visualization)

的 "variation" 中的双精度值

发生这种情况是因为计算机存储浮点值的方式。你可以阅读更多here.

为了解决您的问题,我建议您将输出格式化为只包含您需要的小数点后的数字。

NSString* formattedNumber = [NSString stringWithFormat:@"%.02f", [theGPS latitude]];

这会给你小数点后 2 位。