1

数値を次の形式で表示したい

形式は「123-456-7890」です

私は使っている

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
[formatter setPositiveFormat:@"###-###-####"];
[formatter setLenient:YES];

amountField.text =[formatter stringFromNumber:[NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]]];
NSLog(@"%@",amountField.text);

私はそれを行うために上記のコードを使用していますが、コードは反映されていません.....そして、出力は1234567890として表示されます。

4

4 に答える 4

3

次のフォーマッタを使用します。

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    //[formatter setNumberStyle:NSNumberFormatterNoStyle];
    //[formatter setPositiveFormat:@"###-###-####"]; 
    [formatter setGroupingSeparator:@"-"];
    [formatter setGroupingSize:4];
    [formatter setUsesGroupingSeparator:YES];
       [formatter setSecondaryGroupingSize:3];
    //[formatter setLenient:YES];
    NSString *num = @"1234567890";
    NSString *str = [formatter stringFromNumber:[NSNumber numberWithInt:[num intValue]]];
    NSLog(@"%@",str); 
于 2011-09-08T11:37:52.130 に答える
0

setPositiveFormat は、「-」セパレーターをマイナス記号と見なします。

注:数値形式のパターンを参照してください。

回避策は、',' 区切り文字を指定して置き換えることです。

NSNumber *phoneNumber = [NSNumber numberWithDouble:[rxAlertResponse.rxPhoneNo doubleValue]];
NSString *text =[formatter stringFromNumber:phoneNumber];
amountField.text = [text stringByReplacingOccurrencesOfString:@"," withString:@"-"];
于 2011-09-08T11:36:07.433 に答える