플로트를 나타내는 문자열이 있습니다 (예 : 2400.0
). 숫자 (2,400.0
)로 서식을 지정하고 숫자 기호 뒤에 0을 유지해야합니다.NSNumberFormatter : 25.0과 같은 문자열에서 시작하는 마지막 숫자로 0 표시
NSString* theString = @"2400.0";
// I convert the string to a float
float f = [theString floatValue];
// here I lose the digit information :(and it ends up with 2400 instead of 2400.0
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setUsesSignificantDigits:YES];
[formatter setMinimumFractionDigits:1];
[formatter setMaximumFractionDigits:2];
[formatter setLocale:[NSLocale currentLocale]];
NSString *result = [formatter stringFromNumber:@(f)];
의 I 내가 올바른 문자열을 얻을 수있는 방법 2,400.0
필요 동안 result
의 NSLog
이 2,400
입니까?
문제는 문자열에서 첫 번째 변환하는 동안 나는 "0.0"정보가 손실 떠 있다는 것입니다. 이미'minimumFractionDigits'를 설정하려했습니다. Btw 좀 더 정확하게 내 코드 예제에 추가합니다. – MatterGoal
어떻게'.0' (내가 이해할 수있는 다른 부분이긴하지만'.0'?)을 잃을 수 있는지 이해할 수 없습니다. 어쨌든 입력 용과 출력 용으로 두 개의 숫자 포맷터가 필요합니다. – DarkDust
아, 그리고'setUsesSignificantDigits : YES'를 설정 했으므로 ['minimumSignificantDigits'] (https://developer.apple.com/library/mac/documentation/cocoa/reference/Foundation/Classes/NSNumberFormatter_Class/)를 설정할 수 있습니다. Reference/Reference.html # // apple_ref/occ/instm/NSNumberFormatter/setMinimumSignificantDigits :) ([이 질문 (http://stackoverflow.com/questions/1322348/what-describes-nsnumberformatter-maximumsignificantdigits) 참조) 또는 그 (것)들을 끄십시오. – DarkDust