2009-11-03 4 views
4

예를 들어 NSDecimal myDecimal이 있습니다. "-1234567.89"와 같은 것을 나타낼 수 있습니다.형식 지정없이 NSDecimal에서 문자열 표현을 가져 오는 방법은 무엇입니까?

미화/서식없이 해당 소수의 깨끗한 문자열 표현을 어떻게 얻을 수 있습니까? 현지화가 없습니까? 부동 소수점 기호 =. 0에서 9까지의 숫자 만 남기고 결국에는 - 음수이면 안 되니? 나는 엄격한 기술 방식으로 그 문자열을 필요로한다. 따라서 123456789876554432123456789.2231과 같은 숫자는 "123,456,789,876,554,432,123,456,789.2231"와 같이 멋진 형식으로 보이지 않아야합니다. 요점은 알 겠어? 서식을 지정하고 싶지 않습니다. 나는 하루 종일 그 권리를 얻으려고 노력하고 있지만 내가 발견 한 모든 것은 항상 형식화와 관련이 있습니다. 어떻게 그랬 니?

+1

정수 및 소수 부분을 구분할 때'.' 문자를 사용하도록 선택하면 몇 가지 서식을 사용합니다. 나를 위해 포맷되지 않은 십진수 대신','를 사용합니다. – mouviciel

+0

기본적으로 NSDecimalString() 함수는 1000 단위 구분 기호를 추가하지 않으므로 소수 구분 기호에 문제가 있습니까? –

답변

8

저는 로케일 지정과 관계없이 "깨끗한"문자열 표현이 있다고 생각하지 않습니다. 많은 유럽인들이 지적했듯이 123.45는 123,45로 작성해야합니다 (십진법 대신., 대신에.). NSDecimalString() (Foundation Functions Reference에서 찾을 수 있음)은 두 번째 매개 변수로 로캘 사양을 사용합니다. 일부 로켈에서 원하는 형식을 사용하는 경우 해당 로켈을 두 번째 매개 변수로 전달하십시오 (로케일에 대한 자세한 내용은 Internationalization Guide 참조).

또는 NSNumberFormatter을 사용하면 문자열 표현을보다 잘 제어 할 수 있습니다.

3

쉬운 (현지화 된) 컨트롤에는 NSNumberFormatter를 사용하십시오.

1
float number = 12.345; 
NSString* numberString = [NSString stringWithFormat:@"%f", number]; 

이렇게하면 사용자의 현재 로캘에 관계없이 일관된 서식을 지정할 수 있습니다.

+3

그의 경우, 그는 표준 부동 소수점 형식이 아닌 NSDecimal에 대해 질문합니다. 그러나 그는 임시 NSDecimalNumber를 만들고 floatValue 또는 doubleValue 메서드를 사용하여 NSDecimal에서 부동 소수점 값을 추출한 다음 설명하는 형식 문자열을 사용할 수 있습니다. –

관련 문제