Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSNumber十进制到C原语值?_Objective C_Cocoa_Nsnumber - Fatal编程技术网

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"];