2012-05-07 77 views
1

我想在iOS中編程轉換器。帶語言環境和指數的NSNumber

用戶將值輸入到文本字段中,並對值進行轉換。

結果最終返回給用戶。

輸出必須是區域設置的十進制格式。

另外,輸出必須以指數形式打印,這是可行的。

問題:我需要指數形式和小數形式。

以下代碼解釋了什麼可行。

//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 

什麼都行不通。我需要一個指數和十進制格式!

我想這樣的輸出:

myString = 1,00e-2 

任何人有線索?

回答

3

用你的格式化程序試試這個:NSNumberFormatterScientificStyle