2011-01-30 6 views
1

끝에서 불필요한 0이 아닌 double 값에서 stringWithFormat을 사용하여 문자열을 만들고 싶습니다.불필요한 0을 표시하지 않습니다.

예 :

  1. [NSString stringWithFormat:@"%.8f",2.344383933];

  2. [NSString stringWithFormat:@"%.8f",2.0];

예상 결과

  1. ,210

  2. 2

올바른 형식은

?

감사합니다.

+2

여기 좀보세요 : http://stackoverflow.com/questions/1113408/limit-a-double-to-two-decimal-places – Icky

+0

예, 의미가없는 경우 소수점 뒤에 0을 모두 억제합니다. – Fab

답변

0

사용 NSNumberFormatter

[numberFormatter numberFromString:[NSString stringWithFormat:@"%.8f",0]] 

샘플 :

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; 

NSLog(@"1: %@",[numberFormatter numberFromString:[NSString stringWithFormat:@"%.8f",2.344383933]]); 
NSLog(@"2: %@",[numberFormatter numberFromString:[NSString stringWithFormat:@"%.8f",2.0]]); 

결과 :

1: 2.344383933

2: 2

+0

정말 이상한 방법으로'NSNumberFormatter'를 사용하고 있습니다. 왜'stringWithFormat'을 사용합니까? 결과가'string' 일 때'numberFromString'을 사용하는 이유는 무엇입니까? 당신이하고 싶은 것은'maxFractionalDigits'를'8'로 설정하고'stringFromNumber :'를 호출하는 것입니다. – Sulthan

+0

의견을 작성하여이 게시물을보다 완벽하게 작성하십시오. –

0

, NSNumberFormatter 포맷 번호에 대한 전용 클래스가있다 :

let formatter = NSNumberFormatter() 
formatter.maximumFractionDigits = 8 

print("\(formatter.stringFromNumber(2.344383933))") 
print("\(formatter.stringFromNumber(2.0))") 

NSNumberFormatter도 (그룹 단락, 소수점) 현지화를 가져올 것입니다.

관련 문제