2012-07-07 19 views
19

ここでは何か基本的なものがありません。それを忘れていなければなりません。しかし、基本的に、私は次のコードを持っています。目的はNSNumberを取り、それを浮動小数点に変換し、2倍して結果をNSNumberに返します。私は最後のステップでエラーが発生し、困惑しています。私はそこで何をすべきですか?浮動小数点数をNSNumberに変換する

NSNumber *testNSNumber = [[[NSNumber alloc] initWithFloat:200.0f] autorelease]; 
float myfloatvalue = [testNSNumber floatValue] * -2; 
NSLog(@" Test float value %1.2f \n\n",myfloatvalue); 
[testNSNumber floatValue:myfloatvalue]; // error here is floatValue is not found 

答えて

43

方法NSNumberfloatValueはパラメータを取りません。

testNSNumber = @(myfloatvalue); // The new syntax 

または

testNSNumber = [NSNumber numberWithFloat: myfloatvalue]; // The old syntax 
+1

なぜ@(myfloatvalue)を使用しないのですか? –

+0

@JulianKrólありがとう!この答えは '@(...)'構文が導入される1年以上前に書かれています。新しい構文を反映するように更新しました。 – dasblinkenlight

+0

今よりはるかに良い:)個人的に新しい回答を投稿し続けるのは問題だが、これを達成できるコミュニティとしてはわかっている。 –

0

スウィフト2.0バージョン:

新しい浮動小数点数を設定したい場合 NSNumberが可変の相手を持っていないので、あなたは、 testNSNumberを再度割り当てる必要があります
let testNSNumber: NSNumber = NSNumber(float: myfloatvalue) 
13

スウィフト3.0:

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue) 
関連する問題