0
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter   setNumberStyle: NSNumberFormatterCurrencyStyle];
    double value = [[numberFormatter  numberFromString: ProviderTripRate.text] doubleValue];
    [User setDouble:value forKey:@"Trip_Rate"];
NSLog(@"     %@                  %f     " , ProviderTripRate.text  ,   value  );

ProviderTripRate.text内のデータが2.75の場合、値は0です。ProviderTripRate.text内のデータが$ 2.75の場合、値は2.75正しいです。

文字列からdouble値に確実に変換するにはどうすればよいですか?テキスト文字列には現地通貨記号(上記の$)がある場合とない場合がありますが、常に変換する必要があります。

前もって感謝します

4

3 に答える 3

1

これを試して:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle: NSNumberFormatterCurrencyStyle];
NSNumber* number = [numberFormatter  numberFromString:ProviderTripRate.text]
if (!number) {
    [numberFormatter setNumberStyle: NSNumberFormatterDecimalStyle];
    number = [numberFormatter  numberFromString:ProviderTripRate.text];
}
double value = [number doubleValue];
于 2012-10-16T17:49:05.387 に答える
0

これを試して:

if ([providerTripRate.text hasPrefix:@"$"]) {
    // use NSNumberFormatter to obtain the value
} else {
    float theValue = [providerTripRate.text doubleValue];
}

于 2012-10-16T17:37:08.263 に答える