1

iOSでコンバーターをプログラムしようとしています。

ユーザーがテキストフィールドに値を入力すると、値が変換されます。

結果は最終的にユーザーに返されます。

出力は、ロケールの10進形式である必要があります。これは機能します。

また、出力は指数形式で印刷する必要があります。これは機能します。

問題:指数形式と小数形式の両方が必要です。

次のコードは、何が機能するかを説明しています。

//formatting

        NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];  
        [formatter setLocale:[NSLocale currentLocale]];
        [formatter setNumberStyle: NSNumberFormatterDecimalStyle];

//formattiing

        float myFloat=0.01;
        NSNumber *myNumber =[[NSNumber alloc]initWithFloat:myFloat];
        NSString *myString =[formatter stringFromNumber:myNumber];


        NSLog(@"Locale: %@", formatter.locale.localeIdentifier);
        NSLog(@"myFloat = %g", myFloat);
        NSLog(@"myNumber = %.2e",[myNumber floatValue]);
        NSLog(@"myString = %@", myString);

//output
 Locale: nb_NO
 myFloat = 0.01
 myNumber = 1.00e-02
 myString = 0,01

何が機能しないのか。指数とdecimalformatterが1つに必要です!

この出力が欲しい:

myString = 1,00e-2

誰かが手がかりを得ましたか?

4

1 に答える 1

3

フォーマッターでこれを試してください:NSNumberFormatterScientificStyle

于 2012-05-07T13:25:43.973 に答える