将NSNumber修剪为8位小数

时间:2013-04-03 07:38:28

标签: ios nsnumberformatter

我有一个ios应用程序,显示您当前位置的纬度。我想将纬度中的位数限制为8个小数点。我使用NSNumberFormatter,但代码不起作用,我不知道为什么 这是代码

NSNumber* lat = [[NSNumber alloc]   initWithDouble:self.currentLocation.coordinate.latitude];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:8];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
NSString *latit = [lat stringValue];
NSNumber *lati= [formatter numberFromString:(latit)];
NSLog(@"lat %@", lat);
NSLog(@"lati %@", lati);

我尝试了很多东西,因为你可以看到转换为字符串等。我的控制台显示两个lat lati是相同的。

1 个答案:

答案 0 :(得分:10)

试试这个,

NSNumber* lat = [[NSNumber alloc]  initWithDouble:self.currentLocation.coordinate.latitude];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];

[formatter setMaximumFractionDigits:8];

[formatter setMinimumFractionDigits:0];
NSString *result = [formatter stringFromNumber:lat];
NSLog(@"lat %@", result);