2013-08-02 2 views
0

누군가 도와주세요. 저는 Calculator App을 만들고 NSNumberFormatter를 사용했습니다. 내 UILabel에 표시되는 숫자의 제한을 설정하고 싶습니다 (예 : 최대 12 자리). "1234121.38685 (12)"인 경우에도 모든 숫자가 의미합니다. 그래서이 숫자를 곱하면 점점 커지고 정확하게 반올림되어야합니다. 예를 들어, "9785123124.12", 다시 "75647689751.5"가 되길 원합니다. 따라서 결과 값은 float가 아닌 정수 부분의 최대 값을 나타냅니다. 그것을 만드는 방법 ?NSNumberFormatter IOS 계산기 디스플레이

numberFormatter = [[NSNumberFormatter alloc] init]; 
[numberFormatter setGroupingSeparator:@" "]; 
[numberFormatter setGroupingSize:3]; 
[numberFormatter setUsesGroupingSeparator:YES]; 
[numberFormatter setDecimalSeparator:@"."]; 
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[numberFormatter setMaximumFractionDigits:10]; 
[numberFormatter setRoundingMode:NSNumberFormatterRoundUp]; 
[numberFormatter setMaximumIntegerDigits:10]; 
+0

NSDecimalNumber 당신이 찾고있는 기능이 있습니다 : http://stackoverflow.com/questions/3981219/rounding-nsdecimalnumber – CharlesW

답변

0

@ 아담 베링거, 그것은 RoundMode 올바른 점점이 코드를 사용하는 것이 훨씬 더 낫다!

result=[[self math] calculations]; 
resultString=[NSString stringWithFormat:@"%.16f", result]; 
getIntPartOfValue=result; 
stringForGetIntPartOfValue=[NSString stringWithFormat:@"%lld",getIntPartOfValue]; 
[numberFormatter setMaximumFractionDigits:(maximumAmountOfDigits stringForGetIntPartOfValue.length)+1]; 
내가 좋을 것
0

하나는 설정 한 숫자 포맷터를 사용하여 숫자를 NSString으로 변환 한 것입니다. 총 자릿수가 10 자 이상이되는지 확인하십시오. 그런 다음 문자열 클래스를 사용하여 숫자를 자릅니다.

NSString *numbLong = @"123023.123781237912378123"; // get this from your number formatter 
NSString *numbTruncated = [numbLong substringToIndex:10]; // 123023.123 
+0

아담, 그것은 방법이 번호를 만드는 좋은 생각되지만, 또한 둥근? 당신의 예제에서 "123023.124"를 얻고 싶습니다. – user2647233