我需要存儲一個十進制數字,並且字符串,整數或數字都無法做我想要的。我無法使用NSNumber,因爲我需要稍後才能更改它。存儲十進制數字
我搜索了整個互聯網,但我似乎無法找到它。
答案可能很簡單。
謝謝!
UPDATE:
一些種類的數據在這裏
循環代碼{
的NSLog(保存號);
保存編號3.1415926535;
刪除已儲存
//現在字符串不存在了 }
我需要能夠保存外循環,這個數字在「某些類型的數據在這裏」所有數據因爲當循環開始時,從循環創建的所有內容都將被刪除。
我需要存儲一個十進制數字,並且字符串,整數或數字都無法做我想要的。我無法使用NSNumber,因爲我需要稍後才能更改它。存儲十進制數字
我搜索了整個互聯網,但我似乎無法找到它。
答案可能很簡單。
謝謝!
UPDATE:
一些種類的數據在這裏
循環代碼{
的NSLog(保存號);
保存編號3.1415926535;
刪除已儲存
//現在字符串不存在了 }
我需要能夠保存外循環,這個數字在「某些類型的數據在這裏」所有數據因爲當循環開始時,從循環創建的所有內容都將被刪除。
只需使用一個double
。當談到時間來存放它,你可以得到一些這樣的:
NSNumber *number = @(myDouble);
要改變一個NSNumber成雙,
double myDouble = [number doubleValue];
不完全是我想要的,但我明白了;-) – Deni 2013-05-10 07:41:37
嘗試使用NSNumber
像這樣:
double myValue = 20.0;
NSNumber* number = [NSNumber numberWithDouble:myValue];
// Do something with NSNumber like write it to disk, put it in an array, dictionary whatever ....
// Then pull it back out
double myOldValue = [number doubleValue];
拉雙重價值在應用軟件關閉後(我解釋這意味着「中背景」或「暫停」),試圖將其寫入NSUserDefaults
之前應用程序是背景,然後將其拉回應用程序恢復時。
// Write a double to NSUserDefaults
[[NSUserDefaults standardUserDefaults] setDouble:myValue forKey:@"myDoubleValue"];
// Write an NSNumber to NSUserDefaults
[[NSUserDefaults standardUserDefaults] setObject:number forKey:@"myNumberWithDoubleValue"];
// Extract double from NSUserDefaults
double myReallyOldDoubleValue = [[NSUserDefaults standardUserDefaults] doubleForKey:@"myDoubleValue"];
// Extract NSNumber from NSUserDefaults
NSNumber* myReallyOldNumberValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"myNumberWithDoubleValue"];
或者在你的僞代碼:
NSNumber *someValue = [NSNumber numberWithDouble:0.0];
some kind of data here
looping code {
nslog(save number)
someValue = [NSNumber numberWithDouble:3.1412];
delete all data that has been stored
}
存放指向你的電話號碼或instance variable
或類property
您可以使用NSNumber
,或者是十進制的子類NSDecimalNumber
。僅僅因爲對象本身是不可變的並不意味着你不能改變給定變量指向的值。例如:
NSDecimalNumber *a = [NSDecimalNumber numberWithInt:2];
a = [a decimalNumberByAdding:[NSDecimalNumber numberWithInt:12]];
a = [a decimalNumberByDividing:[NSDecimalNumber numberWithDouble:2.3]];
這就像真正的int,它也是不可變的。
double a = 2;
a = a + 12;
a = a/2.3;
話雖這麼說,NSDecimalNumber
相當冗長。如果你可以逃避一個原始類型(比如說,以美分而不是美元計算),那麼這可能是更可取的。
這看起來不錯。我會測試它是否在我的代碼中工作,我會讓你知道:-) – Deni 2013-04-30 21:52:30
表情符號不符合Stackoverflows質量標準? – Deni 2013-04-30 21:21:06
難道你不能只用一個雙? – PurpleAlien 2013-04-30 21:24:37
你是什麼意思「商店」呢?請澄清你的問題,並提供一些代碼,以更好地解釋你想要做的事情。 'NSNumber'有一堆方便的方法來存儲和檢索整數,雙精度,布爾等等。事實上'NSNumber'是存儲這些類型的首選方法。 – Aaron 2013-04-30 21:24:47