Objective c 正/负按钮未正确显示

Objective c 正/负按钮未正确显示,objective-c,uitextfield,ibaction,Objective C,Uitextfield,Ibaction,我试图在UItextfield中的数字输入上添加一个正/负按钮,但无法使其正常工作。我想要它做的就是在数字输入的前面添加或删除一个负号。我可以做到这一点,但是我找不到一种方法来保持原来的小数位数。这就是我尝试过的: - (IBAction) negsign { float input = [userinput.text floatValue]; float result = ((input * (-1))); negstring = [NSString stringWit

我试图在UItextfield中的数字输入上添加一个正/负按钮,但无法使其正常工作。我想要它做的就是在数字输入的前面添加或删除一个负号。我可以做到这一点,但是我找不到一种方法来保持原来的小数位数。这就是我尝试过的:

- (IBAction) negsign
{
    float input = [userinput.text floatValue];
    float result = ((input * (-1)));
    negstring = [NSString stringWithFormat:
                          @"%f", result];
    userinput.text = negstring;
}

通过这个,我只得到一个零字符串,比如-23.0000000。我已经尝试通过更改为@“%.2f”来限制小数位数,但我不希望整数有额外的零,或舍入超过2位小数。我只想把它变成34.658939或23,然后变成-34.658939或-23。有人有这样做的方法吗?

在您的情况下,最有效的方法是以下代码:

float input = [userinput.text floatValue];
float result = ((input * (-1)));
NSNumber *resultNum = [NSNumber numberWithFloat:result];
NSString *resultString = [resultObj stringValue];
userinput.text = resultString;

如果您试图使数字为负数,而不是反转符号,则最好替换
float result=((输入*(-1))
浮点结果=-ABS(输入)

事实上,处理这个问题的最好方法是从一开始就不要将它转换为字符串。只需根据需要替换第一个字符,如下所示:

- (IBAction) negsign
{
    unichar firstCharacter = [userinput.text characterAtIndex:0];
    if (firstCharacter == '-') {
        // Change the first character to a + sign.
        userinput.text = [userinput.text stringByReplacingCharactersInRange:NSMakeRange(0, 1) 
                                                                 withString:@"+"];
    } else if (firstCharacter == '+') {
        // Change the first character to a - sign.
        userinput.text = [userinput.text stringByReplacingCharactersInRange:NSMakeRange(0, 1) 
                                                                 withString:@"-"];
    } else {
        // There is no sign so we assume that it is positive.  
        // Insert the - at the beginning.
        userinput.text = [userinput.text stringByReplacingCharactersInRange:NSMakeRange(0, 0) 
                                                                 withString:@"-"];
    }
}

这个问题涉及浮动的格式:非常感谢这两个答案都非常有帮助,我能够让它正常工作!