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