我有以下代码行
NSNumber *myValue = loadTempValue*0.420;
我尝试将*myValue
的值设置为loadTempValue*0.420
的值,
但是,我收到错误
Invalid operands to binary expression ('NSNumber *" and 'double')
有人可以建议如何解决这个问题吗?
答案 0 :(得分:3)
似乎loadTempValue
也是NSNumber
。在这种情况下,你想要:
NSNumber *myValue = @([loadTempValue doubleValue] * 0.420);
为什么使用NSNumber
个对象来表示这些值?
如果loadTempValue
是double
,您可以这样做:
double myValue = loadTempValue * 0.42;
答案 1 :(得分:0)
尝试:
NSNumber *myValue = @([loadTempValue doubleValue] * 0.420);
或
NSNumber *myValue = [NSNumber numberWithDouble:([loadTempValue doubleValue] * 0.420)];
答案 2 :(得分: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);