0

8文字を入力した後、アプリのこのテキストフィールドを科学的記数法で表示しようとしています(組み込みの電卓アプリのようなものです)。科学的記数法で表示されるはずの場合を除いて、すべてが正しく機能しています。「0.0」と表示されるだけです。

私のコードの何が問題になっていますか?

NSString *current;
NSString *str = (NSString*)[sender currentTitle]; //sender is in the method header
if([current isEqualToString:@"0"]) {
    current = str;
} else if (current.length < 8){
    current = [current stringByAppendingString:str];
} else {
    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
    [formatter setNumberStyle:NSNumberFormatterScientificStyle];
    current = [formatter stringFromNumber:(NSNumber*)current];
}
4

1 に答える 1

1

にをキャストすることはできませNSStringNSNumber。をdoubledoubleValueに変換するために使用します。NSString

current = [formatter stringFromNumber:@([current doubleValue])];

または、この回答NSNumberFormatterで説明されているように、を使用して文字列を数値に変換できます

于 2013-03-26T03:15:26.150 に答える