2

こんにちは、私は以下のメソッドを使用して NSNumber から文字列を取得しています

     -(NSString *)stringFromNumber:(NSNumber *)number
    {
        NSLog(@"Input:---%@",number);
        NSNumberFormatter *numFormatter = [[[NSNumberFormatter alloc] init] autorelease];
        [numFormatter setMaximumFractionDigits:5];
        [numFormatter setMinimumFractionDigits:2];
        //[numFormatter setExponentSymbol:@"e"];
        NSString *str_num = [numFormatter stringFromNumber:number];
        NSLog(@"Output:---%@",str_num);
        return str_num;
    }

コンソールで私は以下のようになっています

    Input:---2.940000057220459
    Output:---2.94                
    Input:---2940.000057220459
    Output:---2940.00006         
    Input:---2.940000057220459e-15
    Output:---.00                 
    Input:---2.940000057220459e-12
    Output:---.00                 
    Input:---2.940000057220459e-09
    Output:---.00                 
    Input:---2.940000057220459e-06
    Output:---.00                 
    Input:---0.002940000057220459
    Output:---.00294             

しかし、上記の入力(順序)に対して、出力を以下のようにする必要があります

---2.94
---2940
---2.94e-15
---2.94e-12
---2.94e-6
---2.94e-9
---0.00294

どうすればいいですか?誰か助けてください。

4

2 に答える 2

1

私はこれを試しました

-(NSString *)stringFromNumber:(NSNumber *)number
{
    NSLog(@"Input:---%@",number);
    NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init];
    [numFormatter setMaximumFractionDigits:5];
    [numFormatter setMinimumFractionDigits:2];
    NSString *temp = [NSString stringWithFormat:@"%@",number];
    NSRange range = [temp rangeOfString:@"e"];
    if(range.length > 0){
        [numFormatter setNumberStyle:NSNumberFormatterScientificStyle];
        [numFormatter setExponentSymbol:@"e"];
    }
    NSString *str_num = [numFormatter stringFromNumber:number];
    NSLog(@"Output:---%@",str_num);
    return str_num;
}

そしてこうなった

Input:---2.940000057220459
Output:---2.94
Input:---2940.000057220459
Output:---2940.00006
Input:---2.940000057220459e-15
Output:---2.94e-15
Input:---2.940000057220459e-12
Output:---2.94e-12
Input:---2.940000057220459e-09
Output:---2.94e-9
Input:---2.940000057220459e-06
Output:---2.94e-6
Input:---0.002940000057220459
Output:---.00294
于 2012-04-24T11:29:49.750 に答える
1

NSNumberFormatter Classを見てください。

setMinimumFractionDigits:  
setMinimumIntegerDigits:
于 2012-04-23T11:28:11.730 に答える