14

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

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

因此,我尝试定义 double 类型的 xD 和 yD,然后尝试进行类型转换

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

但这也会产生编译错误。究竟如何将 NSNumber 对象转换为用于普通算术表达式?我做了相当多的文献浏览,并没有找到答案。

提前感谢您的帮助。

约翰·多纳

4

1 回答 1

35

使用 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);
于 2009-11-26T02:16:07.193 回答