繁体   English   中英

在iPhone中将NSString转换为NSNumber时出现问题

[英]Problem when converting NSString to NSNumber in iPhone

将字符串(YaxisData)转换为NSNumber时出现问题。 我必须为Core-plot返回一个NSNumber来完成图,但它不起作用。 这是示例代码

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index{

NSNumber *num = [NSNumber numberWithDouble:[[YaxisData objectAtIndex:index] doubleValue]];
return num;

}

num返回垃圾数据,例如-1或993494949494,但是当我记录number的双精度值时,它将打印正确的值。 我无法返回此double值,因为函数签名仅需要返回NSNumber。

NSLog(@"Number: %f", [num doubleValue]);

我被困在这里,非常感谢在这方面的任何帮助。 谢谢!

以某种方式会带来更好的结果吗?

NSString *aString = [YaxisData objectAtIndex:index];
NSLog(@"%@", aString);
double value = [aString doubleValue];
NSLog(@"%f", value);
NSNumber *number = [NSNumber numberWithDouble:value];
NSLog(@"%@", number);

如果没有,您可以显示NSLog()的结果吗?

我知道在实践中看起来似乎是相同的代码,但是可能无法确保-objectAtIndex:始终返回字符串。 这也可能是一个本地化问题(小数点的逗号和点可能会混在一起,这肯定会弄乱您的结果。如果出现本地化问题,请检查以下链接:

如何将NSString转换为NSNumber

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM