Pregunta

Estoy desarrollando un código en el que uso un escáner para obtener NSNumbers desde una cadena, por ejemplo, x e y.

Ahora quiero calcular algo simple de x e y, por ejemplo, z = 10.0 / (x + y / 60.0) /60.0). No puedo hacer esto directamente, ya que al compilador no le gusta la simbología aritmética ordinaria aplicada a objetos numéricos.

Entonces, intenté definir xD y yD, de tipo doble, y luego probé una conversión de tipo

xD = (doble) x;    yD = (doble) y;

pero eso también da un error de compilación. ¿Cómo se pueden convertir los objetos NSNumber para usarlos en expresiones aritméticas ordinarias? Hice una exploración considerable de la literatura y no encontré la respuesta.

Gracias de antemano por cualquier ayuda.

John Doner

¿Fue útil?

Solución

Utilice " valor " métodos de la clase NSNumber, como 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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top