我从api获取以ns为单位的数据,但我将如何将其转换为km

时间:2016-11-10 13:33:39

标签: objective-c nsstring nsnumber

我的代码在

之下
NSNumber *someNumber = [[_dict2 objectForKey:@"location"] objectForKey:@"distance"];

NSString *someString = [someNumber stringValue];
_lbldistance.text=someString;

4 个答案:

答案 0 :(得分:1)

如果您想在字符串中加入km,请使用NSLengthFormatter

NSNumber *someNumber = @1568;
NSLengthFormatter *formatter = [[NSLengthFormatter alloc] init];
NSString *distanceInKM = [formatter stringFromMeters:someNumber.doubleValue];
NSLog(@"%@", distanceInKM); // 1.568 km

答案 1 :(得分:0)

这很简单:除以1000。

答案 2 :(得分:0)

将someNumber除以1000。

NSNumber *someNumber = [[_dict2 objectForKey:@"location"] objectForKey:@"distance"];
someNumber = [someNumber floatValue] * 1000;
NSString *someString = [someNumber stringValue];

答案 3 :(得分:0)

1米等于0.001 KM(1/1000 = 0.001)。

因此,您可以将从API获得的值乘以0.001,您将获得KM中的答案。

NSNumber *someNumber = [[_dict2 objectForKey:@"location"] objectForKey:@"distance"];
float convertedToKM = [someNumber floatValue]*0.001;
someNumber = [NSNumber numberWithFloat:convertedToKM];
NSString *someString = [someNumber stringValue];
_lbldistance.text=someString;

由于您正在显示结果,因此最好将其限制为两个小数位,这是标准做法。你可以这样做:

NSNumber *someNumber = [[_dict2 objectForKey:@"location"] objectForKey:@"distance"];
float convertedToKM = [someNumber floatValue]*0.001;
NSString *someString = [NSString stringWithFormat:@"%.02f", convertedToKM];
_lbldistance.text=someString;