2

我有以下代码行

NSNumber *myValue = loadTempValue*0.420;

我试图将 的值设置*myValue为 的值loadTempValue*0.420

但是,我得到了错误

Invalid operands to binary expression ('NSNumber *" and 'double')

有人可以建议如何设置吗?

4

3 回答 3

5

好像loadTempValue也是一个NSNumber。在这种情况下,您想要:

NSNumber *myValue = @([loadTempValue doubleValue] * 0.420);

为什么要使用NSNumber对象来表示这些值?

如果loadTempValuedouble你可以这样做:

double myValue = loadTempValue * 0.42;
于 2013-12-22T20:01:49.690 回答
0

尝试:

NSNumber *myValue = @([loadTempValue doubleValue] * 0.420);

或者

NSNumber *myValue = [NSNumber numberWithDouble:([loadTempValue doubleValue] * 0.420)];

于 2013-12-22T19:53:41.817 回答
0

loadTempValue是一个NSNumber *并且0.420是一个float。您试图将一个对象乘以编译器不理解的浮点数。

你想做的事情是从中获取浮点值loadTempValue,然后将其乘以0.420. 你这样做:

[loadTempValue floatValue] * 0.420;

从那里开始,您似乎想将该值放回NSNumber *对象中,您可以这样做:

@([loadTempValue floatValue] * 0.420);

@( ... )语法最近被引入到 Objective-C。它被称为数字的对象文字表示法。这是一种速记的书写方式[NSNumber numberWithFloat: ...]

最后,您需要将结果分配给一个名为myValue;的变量。你可以这样做:

NSNumber *myValue = @([loadTempValue floatValue] * 0.420);
于 2013-12-22T20:03:19.257 回答