Objective c 正/负按钮未正确显示
我试图在UItextfield中的数字输入上添加一个正/负按钮,但无法使其正常工作。我想要它做的就是在数字输入的前面添加或删除一个负号。我可以做到这一点,但是我找不到一种方法来保持原来的小数位数。这就是我尝试过的: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
- (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:@"-"];
}
}
这个问题涉及浮动的格式:非常感谢这两个答案都非常有帮助,我能够让它正常工作!