在目标c中将浮点值转换为double

时间:2014-07-08 23:19:54

标签: objective-c casting drawrect cgrectmake

我已经使用强制转换将字符串转换为int,将字符串转换为double并且它可以正常工作。

现在我想将float值转换为double,xcode告诉我:

  

"指针无法转换为' double'",

我的float变量在.h

中声明
@property float *valueX, *valueY

在.m我做:

double dou = (double) valorX;

这里发生了什么?谢谢!

2 个答案:

答案 0 :(得分:2)

不确定你在这里问的是什么,但我想问题是浮动属性中的*。

浮动属性应声明为...

@property float valueX;

@property float *valueX;

(除非它是指向浮点数的指针,但我怀疑这是否是这种情况)

注意

你可能应该做这样的事情......

@property (nonatomic, assign) CGFloat valueX;

答案 1 :(得分:1)

您将valueX声明为float *,表示指向float的指针。

首先需要取消引用指针以获取它包含的浮点值,然后将结果转换为double

double dou = (double)(*valueX);

您还可以将此视为两步流程

float tempFloat = *valueX;
double dou = (double) tempFloat;

如果您不打算将valueX声明为float *,请将声明更改为float