nsnumberformatter의 음수 형식을 (xxx.xx)에서 -xxx.xx로 변경합니다.
-
06-07-2019 - |
문제
NSNUMBERFORMATT가 괄호가있는 음수를 표시하여 마이너스 부호를 앞쪽 (또는 현지화 된 표준이 무엇이든) 변경하여 변경하고 싶습니다.
나는 setNegativeFormat로 이것을 할 수 있다고 가정합니다.
하지만 Apple의 OH 너무 철저한 문서를 읽고 머리를 긁어 냈습니다.
setnegativeformat :
수신기가 음수 값을 표시하는 데 사용하는 형식을 설정합니다.
- (void)setNegativeFormat:(NSString *)aFormat
매개 변수aformat 음수 값에 대한 형식을 지정하는 문자열입니다.
유효성iPhone OS 2.0 이상으로 제공됩니다.
또한보십시오- 음성
선언nsnumberformatter.h
aformat의 옵션은 무엇입니까?!? C'mon Doc Writers, 여기서 링크가 당신을 죽일까요?
편집 : 가치가있는 것에 대해 여기에 선언이 있습니다.
NSNumberFormatter *currencyFormatter = [[NSNumberFormatter alloc] init];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
현지화 된 통화 기호와 소수점이 무엇이든 소수점을 유지하는 것이 중요합니다. 따라서 [CurrencyFormatter setNegativeFormat :@"-#, ## 0.00"] 통화가 누락되었고 모든 통화에 대해 2 개의 소수점을 가정 할 수는 없기 때문에 작동하지 않을 것입니다.
해결책
형식 문자열은 다음의 형식 패턴을 사용합니다 유니 코드 기술 표준 #35 (이 참조는 Mac OS X V10.4 용 Formatters 버전입니다. TR35-4).
편집하다:
통화에 따라 형식 문자열을 설정하려면 ¤
캐릭터, 예를 들어 :
[formatter setFormat:@"¤#,##0.00"];
이것은 현재 현지화에 대한 통화 기호를 추가합니다. ¤
캐릭터.
따라서 동일한 개념을 네거티브 형식 문자열에 적용합니다.
[formatter setFormat:@"-¤#,##0.00"];
이것은 또한의 대신 통화 기호를 적용합니다. ¤
현재 현지화를 위해.
다른 팁
좋아, 제가 일한 대답은 다음과 같습니다.
[currencyFormatter setNegativeFormat:@"-¤#,##0.00"];
열쇠는 이것이 Whatzit입니까? 캐릭터 "¤". 그것이 무엇이라고 불리는지 모르겠습니까? 누구나? 그러나이 형식 문자열의 현지화 된 통화를 나타냅니다 ...
이 경우 NSString 형식을 찾고 있습니다. 형식 문자열 세부 사항을 확인하십시오.
당신이 부정적인 것을 원한다면 12,345.67
로 표시합니다 -12,345.67
, 나는 올바른 nsstring 값이 믿습니다 @"-#,##0.00"
또한 위의 문서에서 다음 문장을 언급했습니다.
음수 값에 대한 형식을 지정하지 않으면 양수 값에 지정된 형식이 사용됩니다.
편집하다:
10.4에 대한 업데이트 : 다음은 10.4와 그 이후의 행동을 설명하는 PDF입니다.
그리고 그 문서에서 링크 된 바와 같이 다음은 다음과 같습니다. 10.4 이상에 필요한 형식의 데이터.
이 문서에서 올바른 문자열은 다음과 같습니다. @"-#,##0.##"
주어진 모든 대답은 통화가 두 십진 자리에 있다고 가정하고 쉼표를 천 개 분리기로 사용합니다. 분명히이 표준을 준수하지 않는 여러 통화가 있습니다. http://en.wikipedia.org/wiki/decimal_mark, 그래서 나는 다음 기술을 사용합니다
NSString * formattedBalance = [currencyFormatter stringFromNumber:balance];
if([formattedBalance rangeOfString:@"("].location != NSNotFound ) {
formattedBalance = [NSString stringWithFormat:@"-%@",[[formattedBalance stringByReplacingOccurrencesOfString:@")" withString:@"" ]stringByReplacingOccurrencesOfString:@"(" withString:@"" ]];
}