У меня есть NSArray, в котором я хотел бы хранить двойные значения. Я определил это следующим образом
NSMutableArray *setOfDoubles;
Я добавляю элементы следующим образом
NSNumber *num;
num = [NSNumber numberWithDouble:someDouble];
[setOfDoubles addObject:num];
И я прочитал элемент следующим образом
num = [setOfDoubles lastObject];
[setOfDoubles removeLastObject];
doubleValueToUse = [num doubleValue];
Моя проблема иногда (не всегда), например, когда num (как объект) равен 5.1, doubleValueToUse (как двойное значение) равен 5.099999999999996. Я понял, что num (как объект) - это 5.1, это то, что я отлаживаю, и когда я наводю указатель мыши над num на строке num = [setOfDoubles lastObject]; это показывает 5.1, но после преобразования doubleValue это становится числом, которое я упомянул. Кто-нибудь знает, почему это происходит?