-3

my code is below

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

NSString *someString = [someNumber stringValue];
_lbldistance.text=someString;
NSNoob
  • 5,548
  • 6
  • 41
  • 54

4 Answers4

1

If you even want to include km in the string use NSLengthFormatter

NSNumber *someNumber = @1568;
NSLengthFormatter *formatter = [[NSLengthFormatter alloc] init];
NSString *distanceInKM = [formatter stringFromMeters:someNumber.doubleValue];
NSLog(@"%@", distanceInKM); // 1.568 km
vadian
  • 274,689
  • 30
  • 353
  • 361
0

That's rather simple: Divide by 1000.

Cliff
  • 145
  • 1
  • 9
0

By divide someNumber with 1000.

NSNumber *someNumber = [[_dict2 objectForKey:@"location"] objectForKey:@"distance"];
someNumber = [someNumber floatValue] * 1000;
NSString *someString = [someNumber stringValue];
KKRocks
  • 8,222
  • 1
  • 18
  • 84
0

1 meter is equal to 0.001 KM (as 1/1000 = 0.001).

So you can just multiply the value you receive from API with 0.001 and you will get the answer in KMs.

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

Since you are displaying the result, it would be better to limit it to two decimal places as is the standard practice. You can do it like:

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