Objective c NSNumber十进制到C原语值?
我想把十进制的Objective c NSNumber十进制到C原语值?,objective-c,cocoa,nsnumber,Objective C,Cocoa,Nsnumber,我想把十进制的NSNumber转换成int或其他我可以计算的形式。以下是我的项目的注释代码: NSNumber *Left = [left valueForOutputKey:@"Y"]; 该行获取石英合成器输出口,其值通常在0.512左右 基本上,我想把它乘以10,然后做一些运算,比如大于和小于,看看它在哪个范围内。使用NSNumber的方法之一: int leftInt = [Left intValue]; float leftFloat = [Left floatValue]; doub
NSNumber
转换成int
或其他我可以计算的形式。以下是我的项目的注释代码:
NSNumber *Left = [left valueForOutputKey:@"Y"];
该行获取石英合成器输出口,其值通常在0.512左右
基本上,我想把它乘以10,然后做一些运算,比如大于和小于,看看它在哪个范围内。使用
NSNumber
的方法之一:
int leftInt = [Left intValue];
float leftFloat = [Left floatValue];
double leftDouble = [Left doubleValue];
因为它看起来像是在处理一个分数分量,所以您需要将它转换为浮点或双精度来执行操作,具体取决于您期望该值的大小。浮点数应该可以,除非你处理的是大得离谱或精确得离谱的数字。下面是它的外观,例如:
float lValue = [[left valueForOutputKey:@"Y"] floatValue];
lValue *= 10;
if (lValue < 10) {
// do whatever
}
else if (lValue > 50) {
// do whatever
}
您可能需要将newValue转换为字符串才能在控件中显示它,只需使用[newValue stringValue]即可。
[Left intValue]
(请参阅)如果值为0.512,则需要浮点或双精度,而不是整数。在存储它之前,请不要忘记将其除以10,或者你会发现这个数字会成倍增加。对——这只是根据他所问的问题编写的填充代码。谢谢——这帮了大忙:)说得对,对不起。无论如何,这是一种“将十进制数字转换为整数”的好方法。谢谢-我已将其集成到我的系统中:)
NSNumber *newValue = [NSNumber numberWithFloat:lValue];
[left setValue:newValue forKey:@"Y"];