2012-05-01 4 views
1

UItext 필드의 숫자 입력에 양수/음수 버튼을 추가하려고하는데 제대로 작동하지 않습니다. 내가 원하는 것은 숫자 입력 앞에 음수 기호를 추가하거나 제거하는 것입니다. 나는 그것을 할 수 있지만 소수점의 원래 숫자를 유지하는 방법을 찾을 수 없습니다. 이것은 내가 시도 것입니다 :이포지티브/네거티브 버튼이 제대로 표시되지 않습니다.

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

내가 -23.0000000처럼, 후 제로 단지 문자열을 얻을. @ "%. 2f"로 변경하여 소수 자릿수를 제한하려했지만 전체 정수에 여분의 0이 필요하거나 2 자리 소수점 이하 반올림이 필요하지 않습니다. 나는 단지 34.658939 또는 23과 같은 것을 가져 와서 -34.658939 또는 -23이되도록하고 싶습니다. 누구든지이 작업을 수행 할 수있는 방법이 있습니까? 당신이 부정적인 수를 만들려고 노력하는 대신의 부호를 반전하는 경우는 float result = -ABS(input);float result = ((input * (-1)));를 교체 할 경우

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

, 그것은 더 나은 것 : 귀하의 경우에 가장 적합한 것이 무엇

+0

이 질문은 수레의 서식을 포함 : [부동 소수점 숫자를 수정 (http://stackoverflow.com/questions/10049533/correcting-floating-point-numbers) – lnafziger

답변

1

는 다음과 같은 코드

+0

두 가지 대답이 정말 도움이되었습니다. 제대로 작동하도록했습니다. – user1123878

1

정말이 문제를 처리하는 가장 좋은 방법은 처음부터 문자열로 변환하지 않는 것입니다. 이 같은 필요에 따라 바로 첫 번째 문자를 대체합니다

- (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:@"-"]; 
    } 
} 
관련 문제