如何转换NSNumber对象用于计算目的?

时间:2009-11-26 02:11:44

标签: nsnumber

我正在开发一些代码,其中我使用扫描程序从字符串中获取NSNumbers,比如x和y。

现在我想从x和y计算一些简单的东西,比如z = 10.0 /(x + y / 60.0)/60.0)。我不能直接这样做,因为编译器不喜欢应用于数字对象的普通算术符号。

所以,我尝试定义类型为double的xD和yD,然后尝试了类型转换

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

但是这也会产生编译错误。如何将NSNumber对象转换为在普通算术表达式中使用?我做了大量的文献浏览,但没有找到答案。

提前感谢您的帮助。

John Doner

1 个答案:

答案 0 :(得分:32)

使用NSNumber类的"value" methods,例如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);