2009-11-26 22 views
11

I un código de desarrollo en el que utilizo un escáner para obtener NSNumbers de una cadena, digamos x e y.Cómo convertir objetos NSNumber con fines computacionales?

Ahora quiero calcular algo simple de xey, 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 los objetos numéricos.

tanto, he intentado definir xD y yD, de tipo doble, y luego trató una conversión de tipo

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

pero eso también da un error de compilación. ¿Cómo se consigue que los objetos NSNumber convertidos se usen 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

Respuesta

29

Uso del "value" methods 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);