代码之家  ›  专栏  ›  技术社区  ›  John R Doner

如何为计算目的转换nsnumber对象?

  •  12
  • John R Doner  · 技术社区  · 15 年前

    我开发了一些代码,其中我使用扫描器从一个字符串(比如x和y)中获取nsnumber。

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

    所以,我尝试定义double类型的xd和yd,然后尝试类型转换

    xd=(双)x; yd=(双)y;

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

    事先谢谢你的帮助。

    约翰多纳

    1 回复  |  直到 15 年前
        1
  •  32
  •   Ben S    15 年前

    使用 "value" methods 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);