我有以下代码行
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);