我按下一個號碼時執行的代碼塊:此字符串格式有什麼問題(模擬器和設備上的不同行爲)?
NSString *currentValue = [@"" stringByAppendingFormat:@"%.02f", [[[[[textField text] stringByReplacingOccurrencesOfString:@"." withString:@""] stringByReplacingOccurrencesOfString:@"," withString:@""] stringByReplacingOccurrencesOfString:@" " withString:@""] doubleValue]/100.0f];
//I am using this to obtain always a number with 2 decimals.
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
[f setMinimumFractionDigits:2];
[f setMaximumFractionDigits:2];
[f setGroupingSeparator:@" "];
NSNumber *currentNumberValue = [f numberFromString:currentValue];
NSLog(@"1: %@", currentValue);
NSLog(@"2: %@", [currentNumberValue stringValue]);
現在,如果我在模擬器中運行這個並按3我得到如下結果:
1: 0.03
2: 0.03
如果我上運行設備我有:
1: 0.03
2: 0
所以基本上設備上的格式化數爲0
我什麼也不是冰是在模擬器上,我得到'。'作爲小數點分隔符,在設備上我有','。
正因爲如此,它永遠不會得到更多。任何數字,我按它仍然是0.
什麼似乎是問題?
設備vs模擬器上的國際/地區設置是什麼? – Anna 2010-10-26 20:37:32