0

我知道 NSNumber 不能超过 1/10 的位置。我可以使用什么替代将双精度(经度/纬度)添加到 Core Data 中?直接使用 double 不起作用,并且 NSNumber 会截断该值。

NSManagedObject *newManagedObject = [NSEntityDescription 
                                     insertNewObjectForEntityForName:[entity name]
                                     inManagedObjectContext:managedObjectContext];

if ([locObj valueForKey:@"latitude"]        != NULL) {
    NSNumber    *latitude       = [NSNumber numberWithInt:[[locObj valueForKey:@"latitude"] doubleValue]];
    [newManagedObject setValue:latitude forKey:@"latitude"];
}
if ([locObj valueForKey:@"longitude"]       != NULL) {
    NSNumber    *longitude      = [NSNumber numberWithInt:[[locObj valueForKey:@"longitude"] doubleValue]];
    [newManagedObject setValue:longitude  forKey:@"longitude"];
}
4

2 回答 2

1

你为什么不使用[NSNumber numberWithDouble:x]

于 2010-08-31T20:12:14.123 回答
0

你可以看看NSDecimalNumber?否则我相信你可能不得不处理四舍五入。

于 2010-08-31T20:00:02.610 回答