distanceFromLocation到string是关闭的

时间:2011-03-08 04:10:31

标签: iphone objective-c ios

因此,我尝试使用distanceFromLocation并将其显​​示为“8英里”或“1.5英里”,但我最终得到的是“93129432英里”。请参阅内联注释,了解它出错的地方。

 double roundDouble = round(returnedDouble);
    NSNumber *mylngDoubleNumber = [NSNumber numberWithDouble:roundDouble];

    if(latDouble == 0 || lngDouble == 0 || roundDouble == 0){
        NSString *str = [NSString stringWithFormat:@"0 mi."];
        self.distance.text = str;
    }else {
        NSString *lngDoubleString = [mylngDoubleNumber stringValue]; <-- ok here '98'
        NSString *str = [NSString stringWithFormat:@"%d mi.",lngDoubleString]; <-- bad here '93129432'

        self.distance.text = str; 
    }

2 个答案:

答案 0 :(得分:3)

您的格式不正确。 %d与整数一起使用。 %f用于浮动和双打。看看这个问题:Limit a double to two decimal places

编辑:再次读取代码,不能格式化字符串。你需要格式化双精度。

答案 1 :(得分:0)

它应该是[NSString stringWithFormat:@"%@ mi", lngDoubleString];,因为您正在格式化字符串。