可能重复:
更正浮点数
float randNum = arc4random()%(100)-1;
我在某处读到这会给我1-100之间的随机数。或者类似的东西。
这条线似乎一直有效,但我将此数字转换为 NSString 以存储/打印为文本,然后将其转换回浮点数以进行排序和其他计算。但是当我得到那个浮动时,有时它看起来像是胡言乱语。在变量视图中像这样:
9 float 9.75303731e-41
为什么转换为 NSString 并返回到 float 会破坏我正在使用的 float 值?(例如,我可能搞砸了什么?或者我应该改用 CGFloat 吗?)
我认为这是所有相关的代码:
NSMutableArray *stringArray = [[NSMutableArray alloc] init];
floatArray[30];
// put three random floats into an NSMutableArray of NSStrings
for(int i = 0; i < 3; i++)
{
float randNum = arc4random()%(100)-1;
NSString *randString = [NSString stringWithFormat:@"%.3f", randNum];
[stringArray addObject:randString];
}
// convert NSStrings back to float
for(NSString *string in stringArray)
{
float temp = [string floatValue];
floatArray[iterator] = temp;
}
提前感谢您的任何帮助/建议。
编辑:当我单步执行代码时,浮点值看起来很正常,直到“float temp = [string floatValue]”行,这就是值似乎被垃圾的地方。