您的tmplabel是NSString
,它應該是double
。
如果您確定tmplabel擁有一個可以解析爲簡單雙數的數字,那麼您可以在其上使用doubleValue
。否則,你可能需要做錯誤處理等
這裏更詳盡的轉換是一個樸實的簡單的方法來做到這一點:
temp.text = [NSString stringWithFormat: @"%.fº", [tmplabel doubleValue]];
的doubleValue
方法(和它的近親integerValue
和類似)解釋了字符串的內容,如果字符串的開頭可以作爲數字讀取,它將爲您轉換並將其作爲適當的基本類型返回。在你的情況下,原始類型是double
。
您無法從對象(任何NS *)進行類型轉換爲原始類型,但始終必須經過某種解釋或編程轉換。
最後,請注意,直接使用doubleValue
用戶輸入的快捷方式,你會想重遊,在某些時候,所以要記在腦子裏重新實現它使用一個數字格式或NSScanner
更高版本。想知道爲什麼,試着輸入非數字數據,看看你對結果是否滿意。
最後,要按照您的要求準確設置精確度(即小數點後的小數位數),請參見下面的王子answer或DharaParekh's。
tmplabel是NSString的一個對象。所以,你不能使用%f。使用%@作爲NSString的對象 – DharaParekh 2013-05-14 11:13:22
你想要輸出什麼? – DharaParekh 2013-05-14 11:14:17
@DharaParekh感謝您的評論,但如果我使用%@,那麼我無法控制浮點數的準確性。基本上,該數目目前爲8.xx我想它是8.x所以我需要使用%f ?? – Supertecnoboff 2013-05-14 11:14:52