【问题标题】:Convert float value to double in objective c在目标c中将浮点值转换为双精度
【发布时间】:2014-07-08 23:19:53
【问题描述】:

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

现在我想将浮点值转换为双精度,xcode 告诉我:

"指针不能转换为'double'类型",

我的浮点变量在 .h 中声明

@property float *valueX, *valueY

我在 .m 中做:

double dou = (double) valorX;

这里发生了什么?谢谢!

【问题讨论】:

    标签: objective-c casting drawrect cgrectmake


    【解决方案1】:

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

    浮动属性应声明为...

    @property float valueX;
    

    不是

    @property float *valueX;
    

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

    注意

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

    @property (nonatomic, assign) CGFloat valueX;
    

    【讨论】:

    • 是的,我的问题是 * .. 但感谢您的回复:D
    • @user2958588 是的,这就是我的答案。我特别表明你不应该使用 *.另一个答案是不正确的。只是说。到目前为止,这个问题唯一正确的答案是我的。
    • 实际上,我只是在阅读时引起注意:* ...我说:¿Whatt.?。我忘了退出 * -_- ,嘿,但你可以帮忙:stackoverflow.com/questions/24636304/…
    【解决方案2】:

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

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

    double dou = (double)(*valueX);
    

    您也可以将其视为一个两步过程

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

    如果您不是要将 valueX 声明为 float *,请将声明更改为 float

    【讨论】:

    • 我认为在这种情况下,* 一开始就是一个错误。根据发帖者的描述,她似乎想要一个简单的原语。
    • -_- 我没看到... *
    • @user2958588 在接受之前我会先看看哪个答案实际上是正确的 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2015-08-30
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多