0
float randNum = arc4random()%(100)-1;
我讀的地方,這會給我1之間的隨機數100。或者接近於此。
這條線似乎一直工作,但我把這個數字轉換成一個NSString存儲/打印到文本,然後將其轉換回一個浮點,以便進行排序和其他計算。但是當我有時會回到浮動狀態時,它看起來像是亂碼;像這樣在變量視圖:
9 float 9.75303731e-41
爲什麼會轉換成一個NSString和回浮點毀掉我使用的浮點值? (例如,我能怎麼都搞砸了或者我應該使用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 = [字符串floatValue]」,這是值似乎是垃圾。
而不是轉換爲NSString,爲什麼不轉換爲NSNumber並將其保存在數組中,然後從NSNumber對象中取回它? – iDev
ACB - 感謝您的建議。我會試試看。 Inafziger - 感謝發佈可能的副本。我會嘗試ACB的建議。 – user990769
你爲什麼要減1? 'arc4random()%(100)'返回一個0-99的數字,所以你應該_add_ 1移至1-100。 – Barmar