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

您不能只将 anNSString转换为NSNumber. 用于doubleValue将 an 转换NSString为 double:

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

或者您可以使用 anNSNumberFormatter将字符串转换为数字,如本答案中所述

于 2013-03-26T03:15:26.150 回答