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]; 
} 

回答

1

你不能只投一个NSStringNSNumber。使用doubleValueNSString转换为双:

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

或者你可以使用一个NSNumberFormatter来将字符串转换为数字作为现在this answer

+0

描述,用你给我的代码,没有任何反应后8个字符插入。 – 2013-03-26 03:47:49

+1

如果你用调试器遍历代码,你会在最后的'else'块吗? – Sebastian 2013-03-26 03:58:29

+0

@coryginsberg:检查你的if语句。你可能应该测试'str',而不是'current'。 – 2013-03-26 21:51:03