Как преобразовать объекты NSNumber для вычислительных целей?
Я разрабатываю некоторый код, в котором я использую сканер для получения NSNumbers из строки, например x и y.
Теперь я хочу вычислить что-то простое из x и y, скажем, z = 10.0/(x + y/60.0)/60.0). Я не могу сделать это напрямую, поскольку компилятор не любит обычную арифметическую символику, применяемую к числовым объектам.
Итак, я попытался определить xD и yD, типа double, а затем попробовал преобразование типа
xD = (double) x; yD = (double) y;
но это также дает ошибку компиляции. Как можно получить объекты NSNumber, преобразованные для использования в обычных арифметических выражениях? Я сделал значительный обзор литературы и не нашел ответа.
Заранее благодарим за помощь.
Джон Донер
Ответы
Ответ 1
Используйте "value" методы класса NSNumber, такие как doubleValue
.
// Initialized to something earlier
NSNumber * x, y;
//Convert NSNumbers to double
double xD = [x doubleValue];
double yD = [y doubleValue];
// You can now use regular arithmetic operators
double zD = 10.0 / ((x + y / 60.0) / 60.0);