NSNumberをfloat値としてNSArrayに挿入しようとしていますが、別のNSNumberからfloatValueを含んでいます。私は、配列の細かいを作成することができますが、私はオブジェクトにアクセスするとき、それは整数にのみ表示されますか?私は[するNSNumber numberWithFloatは:n]がいることを期待.. float値で、通常のNSNumberを生成する別のNSNumberビヘイビアからNSNumberを作成していますか?
int myInteger = 3;
NSNumber *myNum = [NSNumber numberWithInt:myInteger];
NSArray *arr = [NSArray arrayWithObjects:[NSNumber numberWithFloat:[myNum floatValue]], nil];
NSLog(@"%@", [arr objectAtIndex:0]);
出力:
2012-01-09 16:39:32.664 ObjectiveCSandbox[2961:707] 3
はまた、私は細かいポインタ%を使用することができています、 NSLogで%fポインタを試してみると、アプリケーションが完全にクラッシュします。ここで何が起こっているのですか?この質問は何よりも学問的です。
単なるオブジェクトの配列を作成する場合、 'arrayWithObject' ** s **': 'の代わりに' arrayWithObject: 'を使うことができます。 –
yuが正しい値(整数)を持つNSNumberを持っていれば、浮動小数点表現を使って2番目のインスタンスを作成する必要はなく、非常に大きな値の場合は精度が低下する可能性があることに注意してください私の浮動小数点表現情報が正しく)。 – bbum