я столкнулся с этой проблемой в отношении незначительной реализации Objective-C и типа NSNumber имеет различную точность плавающей запятой, и мне просто нужно было знать, что на самом деле происходит, и что я должен сделать, чтобы решить эту проблему. Это указанные вопросы и ответы недостаточно моего вопроса с помощью его ответа. Я был обеспокоен тем, чтобы понять поведение nsnumbers .
У меня есть очень простой метод, который использует nsnumber в основном:
Код: Выделить всё
+ (NSNumber*)addNumber:(NSNumber*)firstNumber withSecondNumber:(NSNumber*)secondNumber {
NSNumber *result = [NSNumber numberWithDouble:([firstNumber doubleValue] + [secondNumber doubleValue])];
NSLog(@"Result: %@", result); // This will print out our result for testing
return result;
}
< /code>
Итак, если я называю этот метод с параметрами следующим образом: < /p>
[Fundamentals addNumber:[NSNumber numberWithDouble:5.0]
withSecondNumber:[NSNumber numberWithDouble:3.5]];
, но если я называю этот метод с помощью метода с помощью Следующие параметры: < /p>
Код: Выделить всё
[Fundamentals addNumber:[NSNumber numberWithDouble:50.0]
withSecondNumber:[NSNumber numberWithDouble:36.54]];
Примечание: не только при печати, даже в отладчике, но и показывает представление значения, как оно распечатано выше.
может кто -нибудь объяснить это, пожалуйста?
Подробнее здесь: https://stackoverflow.com/questions/381 ... tion-issue
Мобильная версия