2012-07-07 66 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,因爲NSNumber不具有可變對方:

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

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

爲什麼不使用@(myfloatvalue)? – 2015-07-02 09:45:37

+0

@JulianKról謝謝!這個答案已經在引入'@(...)'語法前一年多的時間裏寫出來了。我更新了它以反映新的語法。 – dasblinkenlight 2015-07-02 12:41:05

+0

現在好多了:)我知道這是一個問題,要保持張貼的答案新鮮個人,但作爲一個社區,我們可以實現這一點。 – 2015-07-02 12:43:09

0

雨燕2.0的版本:

let testNSNumber: NSNumber = NSNumber(float: myfloatvalue) 
13

雨燕3.0:

let testNSNumber: NSNumber = NSNumber(value: myfloatvalue)